]> git.saurik.com Git - bison.git/blame - ChangeLog
* m4/prereq.m4: Removed the commented jm_PREREQ_HASH
[bison.git] / ChangeLog
CommitLineData
761c1926
AD
12002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
2
3 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
4 definition; avoids potential autoreconf problems.
5
b0f98b10
AD
62002-11-15 Akim Demaille <akim@epita.fr>
7
8 Always check the value returned by yyparse.
9
10 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
11 returned by yyparse.
12 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
13 Adjust calls.
14 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
15 returned by yyparse.
16
970785f1
PH
172002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
18
19 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
20 on input.at test.
21
8fcc7db1
PE
222002-11-14 Paul Eggert <eggert@twinsun.com>
23
7ec1b48e
PE
24 * src/output.c (output_skeleton): Call xfopen instead of
25 duplicating xfopen's body.
26
cfff7583
PE
27 Fix bugs reported by Nelson H. F. Beebe in
28 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001893.html>.
29
8fcc7db1
PE
30 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
31 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
32 Group compiler. Instead, use "$CC -E bar.c". Include the .h
33 file twice in the grammar, as an extra check.
34
35 * tests/input.at (Torturing the Scanner): Surround the
36 backslash-newline tests with "#if 0", to make it less likely that
37 we'll run into compiler bugs. Bring back solitary \ inside
38 comment, but add a closing comment to work around HP C bug. Don't
39 test backslash-newline in C character constant. This should fix
40 the input.at bug reported by Nelson H. F. Beebe in
41 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001893.html>.
42
4e8d992c
AD
432002-11-14 Akim Demaille <akim@epita.fr>
44
45 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
46 status of the compiler.
f32b346d 47 Calling `exit 1' is no longer needed.
4e8d992c
AD
48 Reported by Nelson H. F. Beebe.
49
9501dc6e
AD
502002-11-14 Akim Demaille <akim@epita.fr>
51
52 * tests/atlocal.in (CPPFLAGS): We have config.h.
53 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
54 New.
55 * tests/actions.at, tests/calc.at, tests/conflicts.at,
56 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
57 * tests/regression.at, tests/torture.at: Use them for all the
58 grammars that are to be compiled.
59 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
60 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
61 * doc/bison.texinfo (GLR Parsers): Document `inline'.
62
18b519c0
AD
632002-11-14 Akim Demaille <akim@epita.fr>
64
65 * doc/bison.texinfo: Various formatting changes (alignments in
66 samples, additional @group/@end group, GCS in samples.
67 Use @deffn instead of simple @table to define the directives,
68 macros, variables etc.
69
9a86cdb9
PE
702002-11-13 Paul Eggert <eggert@twinsun.com>
71
daa33def
PE
72 Fix some bugs reported by Albert Chin-A-Young in
73 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001881.html>.
18b519c0 74
daa33def 75 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 76 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
77 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
78 * tests/headers.at (export YYLTYPE): Likewise.
79
80 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 81 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 82
9a86cdb9
PE
83 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
84 comments, since they're not portable. Use GNU coding style.
85
9c1e26bd
AD
862002-11-13 Akim Demaille <akim@epita.fr>
87
88 * data/yacc.c: Leave bigger chunks of quoted text.
89 (YYDSYMPRINTF): New.
90 Use it to report symbol activities.
91 * data/glr.c (YYDSYMPRINTF): New.
92 Use it.
93
87f721cc
PE
942002-11-12 Paul Eggert <eggert@twinsun.com>
95
96 Version 1.75b.
97
98 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
99 (yyglrReduce): Return yyok, not 0.
100 This should avoid the enumerated-type warnings reported
101 by Nelson H.F. Beebe in
102 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001872.html>.
103
104 * lib/bbitset.h (BITSET_INLINE): Remove.
105 * lib/bitset.h [! BITSET_INLINE]: Remove.
106 (bitset_set, bitset_reset, bitset_test): Rename local vars
107 to avoid shadowing warnings by GCC.
108
109 * data/glr.c (inline): Remove #define. It's the user's
110 responsibility to #define it away, just like 'const'.
111 This fixes one of the bugs reported by Nelson H.F. Beebe in
112 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001873.html>.
18b519c0 113
87f721cc
PE
114 * Makefile.maint (po-check): Scan .l and .y files instead of the
115 .c and the .h files that they generate. This fixes the bug
116 reported by Tim Van Holder in:
117 <http://mail.gnu.org/pipermail/bison-patches/2002-November/001352.html>
118 Look for N_ as well as for _. Try to avoid matching #define for
119 N_ and _.
120 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
121 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
122 * src/scan-gram.l: Revamp regular expressions so that " and '
123 do not confuse xgettext.
124
125 * src/struniq.h (struniq_new): Do not declare the return type
126 to be 'const'; this violates the C standard.
127 * src/struniq.c (struniq_new): Likewise.
128
be14ade5
AD
1292002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
130
131 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
132 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
133 linker.
134
05291fbc
AD
1352002-11-12 Akim Demaille <akim@epita.fr>
136
137 * Makefile.maint: Sync with Autoconf:
138 (local_updates): New.
139
1f5fd52e
AD
1402002-11-12 Akim Demaille <akim@epita.fr>
141
142 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
143
283f1e64
AD
1442002-11-12 Akim Demaille <akim@epita.fr>
145
146 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
147 locations.
148
886b69d1
AD
1492002-11-12 Akim Demaille <akim@epita.fr>
150
151 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
152 not yyvalue.
153
3df37415
AD
1542002-11-12 Akim Demaille <akim@epita.fr>
155
156 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
157 Use it to test the GLR parser.
158
7bd6c77e
AD
1592002-11-12 Akim Demaille <akim@epita.fr>
160
161 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
162 defines it.
163 * data/glr.c (yystos): New.
164 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
165 (YYDSYMPRINT): New.
166 (yyval): Don't define it, it is handled via M4.
167 (yyrecoverParseError): Free verbosely the discarded symbols.
168 * data/yacc.c (yysymprint): Remove, rather...
169 (b4_yysymprint_generate): invoke.
170 * data/c.m4 (b4_yysymprint_generate): New.
171 Accept pointers as arguments, as opposed to the version from
172 yacc.c.
173 (b4_yydestruct_generate): Likewise.
174 * tests/cations.at (Printers and Destructors): Use Bison directives
175 instead of CPP macros.
176 Don't rely on internal details.
177
b0400cc6
AD
1782002-11-12 Akim Demaille <akim@epita.fr>
179
180 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
181 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
182 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
183 it against YYEMPTY and so forth), work on yytoken (i.e., set
184 it to YYEMPTY etc.).
185 (yydestruct): Replace with a b4_yydestruct_generate invocation.
186 (b4_symbol_actions): Remove.
187 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
188 for 0, end-of-input.
189
72f889cc
AD
1902002-11-12 Akim Demaille <akim@epita.fr>
191
192 * doc/bison.texinfo (Destructor Decl): New.
193
b1ae9233
AD
1942002-11-12 Akim Demaille <akim@epita.fr>
195
196 * src/tables.c (tables_generate): Use free for pointers that
197 cannot be NULL, not XFREE.
198 (pack_vector): Use assert, not fatal, for bound violations.
199 * src/state.c (state_new): Likewise.
200 * src/reader.c (reader): Likewise.
201 * src/lalr.c (set_goto_map): Likewise.
72f889cc 202 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
203 the file name.
204
7ec2d4cd
AD
2052002-11-12 Akim Demaille <akim@epita.fr>
206
207 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
208 Restore.
209 * src/scan-gram.l (last_string): Is global to the file, not to
210 yylex.
211 * src/parse-gram.y (input): Don't append the epilogue here,
212 (epilogue.opt): do it here, and free the scanner's obstack.
213 * src/reader.c (epilogue_set): Rename as...
214 (epilogue_augment): this.
215 * data/c.m4 (b4_epilogue): Defaults to empty.
216
573a6cd3
AD
2172002-11-12 Akim Demaille <akim@epita.fr>
218
219 * src/getargs.c (long_options): Remove duplicates.
220 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
221 Remove.
222 * doc/bison.rnh: Remove.
223 * doc/bison.texinfo (VMS Invocation): Remove.
224
95612cfa
AD
2252002-11-12 Akim Demaille <akim@epita.fr>
226
227 * src/struniq.h, src/struniq.c (struniq_t): Is const.
228 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
229
230 Use struniq for symbols.
231
232 * src/symtab.h (symbol_t): The tag member is a struniq.
233 (symbol_type_set): Adjust.
234 * src/symtab.c (symbol_new): Takes a struniq.
235 (symbol_free): Don't free the tag member.
236 (hash_compare_symbol_t, hash_symbol_t): Rename as...
237 (hash_compare_symbol, hash_symbol): these.
238 Use the fact that tags as struniqs.
239 (symbol_get): Use struniq_new.
240 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
241 Returns a strniq.
242 * src/reader.h (merger_list, grammar_currentmerge_set): The name
243 and type members are struniqs.
244 * src/reader.c (get_merge_function)
245 (grammar_current_rule_merge_set): Adjust.
246 (TYPE, current_type): Are struniq.
247
248 Use struniq for file names.
249
250 * src/files.h, src/files.c (infile): Split into...
251 (grammar_file, current_file): these.
252 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
253 * src/reduce.c (reduce_print): Likewise.
254 * src/getargs.c (getargs): Likewise.
255 * src/complain.h, src/complain.c: Likewise.
256 * src/main.c (main): Call struniqs_new early enough to use it for
257 file names.
258 Don't free the input file name.
259
3e6656f9
AD
2602002-11-12 Akim Demaille <akim@epita.fr>
261
262 * src/symtab.c (symbol_free): Remove dead deactivated code:
263 type_name are properly removed.
264 Don't use XFREE to free items that cannot be NULL.
265 * src/struniq.h, src/struniq.c: New.
266 * src/main.c (main): Initialize/free struniqs.
267 * src/parse-gram.y (%union): Add astruniq member.
268 (yyprint): Adjust.
269 * src/scan-gram.l (<{tag}>): Return a struniq.
270 Free the obstack bit that used to store it.
271 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
272
7672019c
PE
2732002-11-11 Paul Eggert <eggert@twinsun.com>
274
275 Revamp to fix many (but not all) of the C- and M4-related quoting
276 problems. Among other things, this fixes the Bison bug reported
277 by Jan Hubicka when processing the Bash grammar; see:
278 <http://mail.gnu.org/pipermail/bison-patches/2002-November/001329.html>
279
280 Use new @ escapes consistently. Represent brackets with @{ and @}
281 rather than @<:@ and @:>@, since this works a bit better with dumb
282 editors like vi. Represent @ with @@, since @ is now consistently
283 an escape. Use @oline@ and @ofile@ rather than __oline__ and
284 __ofile__, to avoid unexpected expansions. Similarly, use @output
285 rather than #output.
286
287 * data/c.m4 (b4_copyright): Omit file name from comment, since
288 the file name could contain "*/".
289 (b4_synclines_flag): Don't quote the 2nd argument; it should already
290 be quoted. All uses changed.
291
292 * data/glr.c: Use new @ escapes consistently.
293 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
294 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
295 Remove, since they couldn't handle arbitrary characters in file
296 names.
297 * data/lalr1.cc: Likewise.
298 * data/yacc.c: Likewise.
299
300 * src/files.c (output_infix): Remove; all uses removed.
301 * src/files.h: Likewise.
302
303 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
304 mishandled funny characters in file names, and anyway it isn't
305 needed any more.
306 * data/yacc.c: Likewise.
307 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
308
309 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
310 * data/yacc.c: Likewise.
311
312 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
313 strings now.
314 (muscle_init): Quote filename as a C string.
315 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
316 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
317 * src/output.c (escaped_file_name_output): New function.
318 (prepare_symbols): Quote tokens for M4.
319 (prepare): Don't insert output_infix, output_prefix,
320 output_parser_name, output_header_name; this is now down by scan-skel.
321 Insert skeleton as a C string.
322
323 * src/output.c (user_actions_output, symbol_destructors_output,
324 symbol_printers_output): Quote filenames for C and M4.
325 * src/reader.c (prologue_augment, epilogue_set): Likewise.
326
327 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
328 escapes other than \\ and \'; this simplifies the code.
329 (<SC_STRING>): Likewise, for \\ and \".
330 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
331 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
332 Use new escapes @{ and @} for [ and ].
333
334 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
335 them with auto vars.
336 Switch to new escape scheme, where @ is the escape character uniformly.
337 Abort if a stray escape character is found. Avoid unbounded input
338 buffer when parsing non-escaped text.
339
340 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
341 __oline__, #output, $@, and @{ do not have unintended meanings.
342
acea4f3b
PE
3432002-11-09 Paul Eggert <eggert@twinsun.com>
344
345 Fix the test failure due to GCC warnings described in
346 <http://mail.gnu.org/pipermail/bug-bison/2002-November/001815.html>.
347 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
348 evaluate to 0 if it's impossible for NINF to be in the respective
349 table.
350 (yygetLRActions, yyrecoverParseError): Use them.
351
352 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
353 counted in the token inserted at end of file. Now takes
354 location_t *, not location_t, so that the location can be
355 adjusted. All uses changed.
356
357 * tests/regression.at (Invalid inputs): Adjust wording in
358 diagnostic to match the new behavior.
359
360 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
361 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
362 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
363 abort ();'. This reduces the runtime of the "Many lookaheads"
364 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
365 GCC 3.2.
366
20ef1ad5
PE
3672002-11-07 Paul Eggert <eggert@twinsun.com>
368
369 * src/parse-gram.y (CHARACTER): Remove unused token.
370 All uses removed.
371
372 * src/scan-gram.l: Remove stack option. We no longer use the
373 stack, since the stack was never deeper than 1; instead, use the
374 new auto var c_context to record the stacked value.
375
376 Remove nounput option. At an unexpected end of file, we now unput
377 the minimal input necessary to end cleanly; this simplifies the
378 code.
379
380 Avoid unbounded token sizes where this is easy.
381
382 (unexpected_end_of_file): New function.
383 Use it to systematize the error message on unexpected EOF.
384 (last-string): Now auto, not static.
385 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
386 (scanner_last_string_free): Remove; not used.
387 (percent_percent_count): Move decl to just before use.
388 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
389 not the (never otherwised-used) CHARACTER.
390
93724f13
AD
3912002-11-07 Akim Demaille <akim@epita.fr>
392
393 Let yyerror always receive the msg as last argument, so that
394 yyerror can be variadic.
395
396 * data/yacc.c (b4_yyerror_args): New.
397 Use it when calling yyerror.
398 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
399 Use it when calling yyerror.
400 * doc/bison.texinfo (Error Reporting): Adjust.
401 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
402 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
403
6e40b4eb
AD
4042002-11-06 Akim Demaille <akim@epita.fr>
405
406 #line should have quoted strings.
407 Ideally, this should be done by m4_quotearg.
408
409 * src/scan-skel.l: Include quotearg.h.
410 Quote __ofile__.
411 * src/output.c (symbol_printers_output)
412 (symbol_destructors_output): Quote the file name.
413
2dfbfc12
AD
4142002-11-06 Akim Demaille <akim@epita.fr>
415
416 * tests/regression.at (Invalid inputs): Adjust to the recent
417 messages.
418
437c2d80
AD
4192002-11-06 Akim Demaille <akim@epita.fr>
420
421 Restore --no-lines.
422 Reported by Jim Kent.
423
424 * data/c.m4 (b4_syncline): New.
425 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
426 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
427 * src/output.c (user_actions_output): Likewise.
428 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 429 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 430
900c5db5
AD
4312002-11-06 Akim Demaille <akim@epita.fr>
432
433 * src/main.c (main): Free `infile'.
434 * src/scan-gram.l (handle_syncline): New.
435 Recognize `#line'.
436 * src/output.c (user_actions_output, symbol_destructors_output)
437 (symbol_printers_output): Use the location's file name, not
438 infile.
439 * src/reader.c (prologue_augment, epilogue_set): Likewise.
440
e183b123 4412002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 442
e183b123 443 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 444 either has GLR conflict entries.
e183b123 445
193eb6b7
PE
4462002-11-05 Paul Eggert <eggert@twinsun.com>
447
e183b123
PE
448 * src/scan-gram.l: Use more accurate diagnostics, e.g.
449 "integer out of range" rather than "invalid value".
450 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
451 accordingly.
452
193eb6b7
PE
453 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
454 Also, remove one static variable in the scanner.
455
456 * src/scan-gram.l (braces_level): Now auto, not static.
457 Initialize to zero if the compiler is being picky.
458 (INITIAL): Clear braces_level instead of incrementing it.
459 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
460 as POSIX 1003.1-2001 requires.
461 * src/system.h (IF_LINT): New macro, taken from coreutils.
462 * configure.ac: Define "lint" if --enable-gcc-warnings.
463
29c01725
AD
4642002-11-05 Akim Demaille <akim@epita.fr>
465
466 * src/scan-gram.l: When it starts with `%', complain about the
467 whole directive, not just that `invalid character: %'.
468
8aeac3ca
AD
4692002-11-04 Akim Demaille <akim@epita.fr>
470
471 * Makefile.maint: Update from Autoconf.
472 (update, cvs-update, po-update, do-po-update): New.
473
793a58bb
AD
4742002-11-04 Akim Demaille <akim@epita.fr>
475
476 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
477 and yyerror.
478 Have yyerror `use' its arguments.
479 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
480 returns true when location & yacc & pure & parse-param.
481 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
482
c4d720cd
AD
4832002-11-04 Akim Demaille <akim@epita.fr>
484
485 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
486 clashes.
487 * src/scan-gram.l: Use [\'] instead of ['] to pacify
488 font-lock-mode.
489 Use complain_at.
490 Use quote, not quote_n since LOCATION_PRINT no longer uses the
491 slot 0.
492
613a0dc5
PE
4932002-11-03 Paul Eggert <eggert@twinsun.com>
494
495 * src/reader.c (get_merge_function, grammar_current_rule_check):
496 Use consistent diagnostics for reporting type name clashes.
497 Quote the types with <>, for consistency with Yacc.
498 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
499
2a8d363a
AD
5002002-11-03 Akim Demaille <akim@epita.fr>
501
502 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
503 New.
504 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
505 (b4_parse_param): Remove.
506 Use b4_identification.
507 Propagate b4_pure_args where needed to pass them to yyerror.
508 * data/glr.m4 (b4_parse_param): Remove.
509 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
510 (b4_lpure_formals): New.
511 Use b4_identification.
512 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
513 b4_user_formals and b4_user_args.
514 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
515 (yyreportAmbiguity): When using a pure parser, also need
516 the location, and the parse-params.
517 Adjust callers.
518 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
519 When using a pure parser, also need the parse-params.
520 Adjust callers.
521 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
522 (%pure-parser + %parse-param) LALR and GLR parsers.
523 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
524 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
525 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
526 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
527 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
528 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
529 * doc/bison.texinfo: Untabify the whole file.
530 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
531 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
532 (Error Reporting): Adjust to these new directives.
533 Document %error-verbose, deprecate YYERROR_VERBOSE.
534
9e32add8
AD
5352002-11-03 Akim Demaille <akim@epita.fr>
536
537 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
538 AT_CHECK_CALC_GLR invocations to use % directives, instead of
539 command line options.
540 * tests/cxx-type.at: Formatting changes.
541
b02d90a5
PE
5422002-11-03 Paul Eggert <eggert@twinsun.com>
543
544 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
545 to count columns correctly, and to check for invalid inputs.
9e32add8 546
b02d90a5
PE
547 Use mbsnwidth to count columns correctly. Account for tabs, too.
548 Include mbswidth.h.
549 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
550 (extend_location): New function.
551 (YY_LINES): Remove.
552
553 Handle CRLF in C code rather than in Lex code.
554 (YY_INPUT): New macro.
555 (no_cr_read): New function.
556
557 Scan UCNs, even though we don't fully handle them yet.
558 (convert_ucn_to_byte): New function.
559
560 Handle backslash-newline correctly in C code.
561 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
562 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
563 all uses changed.
564 (tag, splice): New EREs. Do not allow NUL or newline in tags.
565 Use {splice} wherever C allows backslash-newline.
566 YY_STEP after space, newline, vertical-tab.
567 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 568
b02d90a5
PE
569 (letter, id): Don't assume ASCII; e.g., spell out a-z.
570
571 ({int}, handle_action_dollar, handle_action_at): Check for integer
572 overflow.
9e32add8 573
b02d90a5
PE
574 (YY_STEP): Omit trailing semicolon, so that it's more like C.
575
576 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
577 as well as \000. Check for UCHAR_MAX, not 255.
578 Allow \x with an arbitrary positive number of digits, as in C.
579 Check for overflow here.
580 Allow \? and UCNs, for compatibility with C.
581
582 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
583 with quote slot used by complain_at.
584
585 * tests/input.at: Add tests for backslash-newline, m4 quotes
586 in symbols, long literals, and funny escapes in strings.
587
588 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
589 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
590 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
591 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
592 * m4/mbswidth.m4: New file, from GNU coreutils.
593
594 * doc/bison.texinfo (Grammar Outline): Document // comments.
595 (Symbols): Document that trigraphs have no special meaning in Bison,
596 nor is backslash-newline allowed.
597 (Actions): Document that trigraphs have no special meaning.
598
599 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
600 no longer used.
601
6022002-11-02 Paul Eggert <eggert@twinsun.com>
603
604 * src/reader.c: Don't include quote.h; not needed.
605 (get_merge_function): Reword warning to be consistent with
606 type clash diagnostic in grammar_current_rule_check.
607
608 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
609 bug in trigraph handling.
610
611 * src/output.c (prepare_symbols): When printing token names,
612 escape "[" as "@<:@" and likewise for "]".
613
614 * src/system.h (errno): Remove declaration, as we are now
615 assuming C89 or better, and C89 guarantees errno.
616
762b212b
PE
6172002-10-30 Paul Eggert <eggert@twinsun.com>
618
619 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
620 Check for close failures.
621 * src/files.h (xfclose): Return void, not int, since it always
622 returned zero.
623 * src/files.c (xfclose): Likewise. Report I/O error if ferror
624 indicates one.
625 * src/output.c (output_skeleton): Use xfclose rather than fclose
626 and ferror. xfclose now checks ferror.
627
628 * data/glr.c (YYLEFTMOST_STATE): Remove.
629 (yyreportTree): Use a stack-based leftmost state. This avoids
630 our continuing battles with bogus warnings about initializers.
631
56100c60
AD
6322002-10-30 Akim Demaille <akim@epita.fr>
633
634 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
635 #if.
636
51b4a04c
PH
6372002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
638
639 * tests/glr-regr1.at: New test for reported regressions.
640 * tests/testsuite.at: Add glr-regr1.at test.
641 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 642
bf1ebda2
PE
6432002-10-24 Paul Eggert <eggert@twinsun.com>
644
5c16c6b1
PE
645 Version 1.75a.
646
bf1ebda2
PE
647 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
648 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
649 we use malloc. Don't assume 'A' through 'Z' are contiguous.
650 Don't assume strdup exists; POSIX says its an XSI extension.
651 Check for buffer overflow on input.
652
b526ee61
AD
6532002-10-24 Akim Demaille <akim@epita.fr>
654
655 * src/output.c (output_skeleton): Don't disable M4sugar comments
656 too soon: it results in comments being expanded.
657 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
658 first output.
659
f1886bb2
AD
6602002-10-24 Akim Demaille <akim@epita.fr>
661
662 * data/yacc.c (m4_int_type): New.
663 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
664 char' as only yacc.c wants K&R portability.
665 * data/glr.c (yysigned_char): Remove.
666 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
667 Reported by Quoc Peyrot.
668
c5576256
PE
6692002-10-23 Paul Eggert <eggert@twinsun.com>
670
671 * src/main.c (main): With --trace=time, report times even if a
672 non-fatal error occurs. Formerly, the times were reported in some
673 such cases but not in others.
674 * src/reader.c (reader): Just return if a complaint has been issued,
675 instead of exiting, so that 'main' can report times.
676
27b0ffea
AD
6772002-10-22 Akim Demaille <akim@epita.fr>
678
679 * src/system.h: Include sys/types.
680 Reported by Bert Deknuydt.
681
223a7883
PE
6822002-10-23 Paul Eggert <eggert@twinsun.com>
683
684 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
685 Suggested by Art Haas.
686
6872002-10-22 Paul Eggert <eggert@twinsun.com>
688
689 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
690 decl; not needed any more.
691 * src/main.c (main): Use return to exit, undoing yesterday's change.
692 The last OS that we could find where this wouldn't work is
693 SunOS 3.5, and that's too old to worry about now.
694
695 * data/glr.c (struct yyltype): Define members even when not
696 doing locations. This is more consistent with yacc.c, and it
697 works around the following bug reports:
698 http://mail.gnu.org/pipermail/bug-bison/2002-October/001764.html
699 http://mail.gnu.org/pipermail/bug-bison/2002-October/001769.html
700 and I hope it also fixes this bug report:
701 http://mail.gnu.org/pipermail/bug-bison/2002-October/001748.html
27b0ffea 702
223a7883
PE
703 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
704 @acronym consistently. Standardize on "Yacc" instead of "YACC",
705 "Algol" instead of "ALGOL". Give a bit more history about BNF.
706
8b76775a
AD
7072002-10-22 Akim Demaille <akim@epita.fr>
708
709 * data/README: New.
710
6db10d14
PE
7112002-10-21 Paul Eggert <eggert@twinsun.com>
712
713 Be consistent about 'bool'; the old code used an enum in one
714 module and an int in another, and this violates the C standard.
715 * m4/stdbool.m4: New file, from coreutils 4.5.3.
716 * configure.ac (AC_HEADER_STDBOOL): Add.
717 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
718 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
719 * src/symtab.c (hash_compare_symbol_t): Likewise.
720 * src/system.h (bool, false, true): Use a definition consistent
721 with ../lib/hash.c. All uses changed.
722
723 * src/complain.c (warning_issued): Renamed from warn_message_count,
724 so that we needn't worry about integer overflow (!).
725 Now of type bool. All uses changed.
726 (complaint_issued): Renamed from complain_message_count; likewise.
727
728 * src/main.c (main): Use exit to exit with failure.
27b0ffea 729
6db10d14
PE
730 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
731 rather than 1 and 0.
732 * src/main.c (main): Likewise.
733 * src/getargs.c (getargs): Likewise.
734 * src/reader.c (reader): Likewise.
735
736 * src/getarg.c (getargs): Remove duplicate code for
737 "Try `bison --help'".
738
739 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
740 What was that "2" for?
741
742 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
743 * src/getargs.c (usage): Likewise.
744
745 * src/getargs.c (getargs): When there are too few operands, report
746 the last one. When there are too many, report the first extra
747 one. This is how diffutils does it.
748
92a060fd
PE
7492002-10-20 Paul Eggert <eggert@twinsun.com>
750
751 Remove K&R vestiges.
752 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
753 * src/complain.c (VA_START): Remove. Assume prototypes.
754 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
755 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
756 fatal): Assume prototypes.
757 * src/complain.h: Assume prototypes.
758 * src/system.h (PARAMS): Remove.
759 Include <limits.h> unconditionally, since it's guaranteeed even
760 for a freestanding C89 compiler.
761 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
762 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 763
e7cb57c0
AD
7642002-10-20 Akim Demaille <akim@epita.fr>
765
766 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
767 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
768 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
769 (yyresolveStates, yyresolveAction, yyresolveStack)
770 (yyprocessOneStack): Use them.
771 (yy_reduce_print): New.
772 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
773
0245f82d
AD
7742002-10-20 Akim Demaille <akim@epita.fr>
775
776 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
777 arguments and output `void'.
778 (b4_c_function): Rename as...
779 (b4_c_function_def): this.
780 (b4_c_function_decl, b4_c_ansi_function_def)
781 (b4_c_ansi_function_decl): New.
782 Change the interpretation of the arguments: before `int, foo', now
783 `int foo, foo'.
784 * data/yacc.c (yyparse): Prototype and define thanks to these.
785 Adjust b4_c_function_def uses.
786 * data/glr.c (yyparse): Likewise, but ANSI only.
787
39912f52
AD
7882002-10-20 Akim Demaille <akim@epita.fr>
789
790 * src/output.c (prepare): Move the definition of `tokens_number',
791 `nterms_number', `undef_token_number', `user_token_number_max'
792 to...
793 (prepare_tokens): Here.
794 (prepare_tokens): Rename as...
795 (prepare_symbols): this.
796 (prepare): Move the definition of `rules_number' to...
797 (prepare_rules): here.
798 (prepare): Move the definition of `last', `final_state_number',
799 `states_number' to...
800 (prepare_states): here.
801 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
802
20c1e2ad
AD
8032002-10-20 Akim Demaille <akim@epita.fr>
804
805 * src/tables.h, src/tables.c, src/output.c: Comment changes.
806
21964f43
AD
8072002-10-20 Akim Demaille <akim@epita.fr>
808
809 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
810 * data/c.m4: here.
811
66d30cd4
AD
8122002-10-20 Akim Demaille <akim@epita.fr>
813
814 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
815 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
816 `pair'.
817 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
818 `name' to...
819 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
820 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
821 These.
822
95f2c9fe
PE
8232002-10-19 Paul Eggert <eggert@twinsun.com>
824
825 Do not create a temporary file, as that involves security and
826 cleanup headaches. Instead, use a pair of pipes.
827 Derived from a suggestion by Florian Krohm.
828 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
829 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
830 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
831 (BISON_PREREQ_SUBPIPE): Add.
832 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
833 Add subpipe.h, subpipe.c.
834 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
835 * po/POTFILES.in: Add lib/subpipe.c.
836 * src/output.c: Include "subpipe.h".
837 (m4_invoke): Remove decl.
838 (scan_skel): New decl.
839 (output_skeleton): Use pipe rather than temporary file for m4 input.
840 Check that m4sugar.m4 is readable, to avoid deadlock.
841 Check for pipe I/O error.
842 * src/scan-skel.l (readpipe): Remove decl.
843 (scan_skel): New function, to be used in place of m4_invoke.
844 Read from stream rather than file.
66d30cd4 845
95f2c9fe
PE
846 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
847 float, as this generates a warning on Solaris 8 + GCC 3.2 with
848 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
849 this generates a more-accurate value anyway.
850
851 * lib/timevar.c (timervar_accumulate): Rename locals to
852 avoid confusion with similarly-named more-global.
853 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
854
855 * src/output.c (prepare): Use xstrdup to convert char const *
856 to char *, to avoid GCC warning.
857
c19988b7
AD
8582002-10-19 Akim Demaille <akim@epita.fr>
859
860 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
861 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
862 Use them to have `calc.y' ready for %pure-parser.
863 * data/yacc.c (YYLEX): Pass a yylex return type to
864 b4_c_function_call.
865
ae7453f2
AD
8662002-10-19 Akim Demaille <akim@epita.fr>
867
868 Prototype support of %lex-param and %parse-param.
869
870 * src/parse-gram.y: Add the definition of the %lex-param and
871 %parse-param tokens, plus their rules.
872 Drop the `_' version of %glr-parser.
873 Add the "," token.
874 * src/scan-gram.l (INITIAL): Scan them.
875 * src/muscle_tab.c: Comment changes.
876 (muscle_insert, muscle_find): Rename `pair' as `probe'.
877 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
878 (muscle_entry_s): The `value' member is no longer const.
879 Adjust all dependencies.
880 * src/muscle_tab.c (muscle_init): Adjust: use
881 MUSCLE_INSERT_STRING.
882 Initialize the obstack earlier.
883 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
884 (muscle_pair_list_grow): New.
885 * data/c.m4 (b4_c_function_call, b4_c_args): New.
886 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
887 * tests/calc.at: Use %locations, not --locations.
888 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
889
0e575721
AD
8902002-10-19 Akim Demaille <akim@epita.fr>
891
892 * src/getargs.c (usage): Take status as argument and exit
893 accordingly.
894 Report the traditional `Try ... --help' message when status != 0.
895 (usage, version): Don't take a FILE * as arg, it is pointless.
896 (getargs): When there is an incorrect number of arguments, make it
897 an error, and report it GNUlically thanks to `usage ()'.
898
724ce7f5
PE
8992002-10-18 Paul Eggert <eggert@twinsun.com>
900
3a781eb2
PE
901 * data/glr.c (yyreportParseError): Don't assume that sprintf
902 yields the length of the printed string, as this is not true
903 on SunOS 4.1.4. Reported by Peter Klein.
904
724ce7f5
PE
905 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
906 * tests/conflicts.at (%nonassoc and eof): Likewise.
907 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
908
473d0a75
AD
9092002-10-17 Akim Demaille <akim@epita.fr>
910
911 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
912 * src/getargs.c (trace_types, trace_args): Adjust.
913 * src/reader.c (grammar_current_rule_prec_set)
914 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
915 Standardize error messages.
916 And s/@prec/%prec/!
917 (reader): Use trace_flag to enable scanner/parser debugging,
918 instead of an adhoc scheme.
919 * src/scan-gram.l: Remove trailing debugging code.
920
e76d2469
PE
9212002-10-16 Paul Eggert <eggert@twinsun.com>
922
93e2236a
PE
923 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
924 MUSCLE_TAB_H.
925
e76d2469
PE
926 * NEWS: Officially drop support for building Bison with K&R C,
927 since it didn't work anyway and it's not worth worrying about.
928 * Makefile.maint (wget_files): Remove ansi2knr.c.
929 (ansi2knr.c-url_prefix): Remove.
930 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
931 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
932 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
933
5bd1c419
PE
9342002-10-15 Paul Eggert <eggert@twinsun.com>
935
936 Stop using the "enum_" trick for K&R-style function definitions;
937 it confused me, and I was the author! Instead, assume that people
938 who want to use K&R C compilers (when using these modules in GCC,
939 perhaps?) will run ansi2knr.
940
941 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
942 All uses of "enum_" changed to "enum ".
943 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
944 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 945
5bd1c419
PE
946 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
947 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
948 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
949 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
950 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
951 abitset_not, abitset_ones, abitset_or, abitset_or_and,
952 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
953 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
954 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
955 Use function prototypes; this removes the need for declaring
956 static functions simply to provide their prototypes.
957 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
958 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
959 bitset_count_, bitset_create, bitset_dump, bitset_first,
960 bitset_free, bitset_init, bitset_last, bitset_next,
961 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
962 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
963 bitset_print, bitset_release_memory, bitset_toggle_,
964 bitset_type_choose, bitset_type_get, bitset_type_name_get,
965 debug_bitset): Likewise.
966 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
967 * lib/bitset_stats.c (bitset_log_histogram_print,
968 bitset_percent_histogram_print, bitset_stats_and,
969 bitset_stats_and_cmp, bitset_stats_and_or,
970 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
971 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
972 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
973 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
974 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
975 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
976 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
977 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
978 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
979 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
980 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
981 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
982 bitset_stats_zero): Likewise.
983 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
984 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
985 bitsetv_dump, debug_bitsetv): Likewise.
986 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
987 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
988 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
989 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
990 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
991 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
992 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
993 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
994 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
995 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
996 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
997 Likewise.
998 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
999 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
1000 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
1001 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
1002 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
1003 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
1004 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
1005 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
1006 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
1007 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
1008 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 1009
ae26e1f0
AD
10102002-10-14 Akim Demaille <akim@epita.fr>
1011
1012 Version 1.75.
1013
d43baf71
AD
10142002-10-14 Akim Demaille <akim@epita.fr>
1015
1016 * tests/Makefile.am (maintainer-check-posix): New.
1017
7ebc83e3
AD
10182002-10-14 Akim Demaille <akim@epita.fr>
1019
1020 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
1021 member.
1022
05846dae
AD
10232002-10-14 Akim Demaille <akim@epita.fr>
1024
1025 * src/tables.c (table_ninf_remap): base -> tab.
1026 Reported by Matt Rosing.
1027
1318e37d
PE
10282002-10-14 Paul Eggert <eggert@twinsun.com>
1029
447fbb17
PE
1030 * tests/action.at, tests/calc.at, tests/conflicts.at,
1031 tests/cxx-type.at, tests/headers.at, tests/input.at,
1032 tests/regression.at, tests/synclines.at, tests/torture.at:
1033 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
1034 so that the tests still work even if POSIXLY_CORRECT is set.
1035 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 1036
1318e37d
PE
1037 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
1038 for portability to K&R hosts. Fix typo: signed char is guaranteed
1039 only to 127, not to 128.
1040 * data/glr.c (yysigned_char): New type.
1041 * data/yacc.c (yysigned_char): Likewise.
1042 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
1043
cc0f0794
PE
10442002-10-13 Paul Eggert <eggert@twinsun.com>
1045
5038f418
PE
1046 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
1047 true due to limited range of data type" warning from GCC.
1048
cc0f0794
PE
1049 * data/c.m4 (b4_token_defines): Protect against double-inclusion
1050 by wrapping enum yytokentype's definition inside #ifndef
1051 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
1052
6fed0802
AD
10532002-10-13 Akim Demaille <akim@epita.fr>
1054
1055 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
1056 Un yy- yyrhs to avoid the name clash with the global YYRHS.
1057
32f0598d
AD
10582002-10-13 Akim Demaille <akim@epita.fr>
1059
1060 * Makefile.maint: Update from Autoconf 2.54.
1061 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
1062
7ea9a33f
AD
10632002-10-13 Akim Demaille <akim@epita.fr>
1064
1065 * src/print.c (print_state): Separate the list of solved conflicts
1066 from the other items.
1067 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
1068
ea99527d
AD
10692002-10-13 Akim Demaille <akim@epita.fr>
1070
1071 Let nondeterministic skeletons be usable with deterministic
1072 tables.
1073
1074 With the patch, GAWK compiled by GCC without -O2 passes its test
1075 suite using a GLR parser driven by LALR tables. It fails with -O2
1076 because `struct stat' gives two different answers on my machine:
1077 88 (definition of an auto var) and later 96 (memset on this var).
1078 Hence the stack is badly corrumpted. The headers inclusion is to
1079 blame: if I move the awk.h inclusion before GLR's system header
1080 inclusion, the two struct stat have the same size.
1081
1082 * src/tables.c (pack_table): Always create conflict_table.
1083 (token_actions): Always create conflict_list.
1084 * data/glr.c (YYFLAG): Remove, unused.
1085
f377f69f
AD
10862002-10-13 Akim Demaille <akim@epita.fr>
1087
1088 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
1089 (O0FLAGS): New.
1090 (VALGRIND, GXX): New.
1091 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
1092 * tests/bison.in: Run $PREBISON a pre-command.
1093 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
1094 (maintainer-check-g++): New.
1095 * Makefile.am (maintainer-check): New.
1096
2a1fe6ed
AD
10972002-10-13 Akim Demaille <akim@epita.fr>
1098
1099 * data/glr.c: Formatting changes.
1100 Tweak some trace messages to match yacc.c's.
1101
f50adbbd
AD
11022002-10-13 Akim Demaille <akim@epita.fr>
1103
1104 GLR parsers sometimes raise parse errors instead of performing the
1105 default reduction.
1106 Reported by Charles-Henry de Boysson.
1107
1108 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
1109 check the length of the traces when %glr.
1110 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
1111 GLR's traces.
1112 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
1113 Test GLR parsers.
1114 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
1115 (yyltype): Remove the yy prefix from the member names.
1116 (yytable): Complete its comment.
1117 (yygetLRActions): Map error action number from YYTABLE from
1118 YYTABLE_NINF to 0.
1119 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
1120 (which was a bug: it should have been YYTABEL_NINF, and yet it was
1121 not satisfying as we could compare an YYACTION computed from
1122 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
1123 only value for error actions.
1124 (yyreportParseError): In verbose parse error messages, don't issue
1125 `error' in the list of expected tokens.
1126 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
1127 next action to perform to match glr.c's decoding.
1128 (yytable): Complete its comment.
1129
bcbad5b9
PE
11302002-10-13 Paul Eggert <eggert@twinsun.com>
1131
1132 Fix problem reported by Henrik Grubbstroem in
1133 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001670.html>:
1134 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
1135 because the Bison parser reads the second action before reducing
1136 the first one.
1137 * src/scan-gram.l (rule_length): New static var.
1138 Use it to keep track of the rule length in the scanner, since
1139 we can't expect the parser to be in lock-step sync with the scanner.
1140 (handle_action_dollar, handle_action_at): Use this var.
1141 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 1142
14904b89
PE
11432002-10-12 Paul Eggert <eggert@twinsun.com>
1144
1fe611e5
PE
1145 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
1146 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
1147 Include <sys/time.h> when checking for clock_t and struct tms.
1148 Use same include order as source.
1149 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
1150 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001674.html>.
05846dae 1151
1fe611e5
PE
1152 * lib/timevar.c: Update copyright date and clarify comments.
1153 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 1154
1fe611e5
PE
1155 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
1156 GCC version as of today, then merge Bison's changes.
1157 Change "GCC" to "Bison" in copyright notice. timevar.def's
1158 author is Akim, so change that too.
1159
98194095
PE
1160 * src/reader.c (grammar_current_rule_check):
1161 Don't worry about the default action if $$ is untyped.
1162 Prevents bogus warnings reported by Jim Gifford in
1163 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001673.html>.
1164
14904b89
PE
1165 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
1166 * data/glr.c, data/lalr1.cc, data/yacc.c:
1167 Output token definitions before the first part of user declarations.
1168 Fixes compatibility problem reported by Jim Gifford for kbd in
1169 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001672.html>.
1170
ff6dca18
PE
11712002-10-11 Paul Eggert <eggert@twinsun.com>
1172
1173 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
1174 (yyparse): here. This undoes some of the 2002-07-25 change.
1175 Compatibility problem reported by Ralf S. Engelschall with
1176 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
1177
eb714592
AD
11782002-10-11 Akim Demaille <akim@epita.fr>
1179
1180 * tests/regression.at Characters Escapes): New.
1181 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
1182 characters.
1183 Reported by Jan Nieuwenhuizen.
1184
b7195100
AD
11852002-10-11 Akim Demaille <akim@epita.fr>
1186
1187 * po/id.po: New.
1188
f28a0f2d
PE
11892002-10-10 Paul Eggert <eggert@twinsun.com>
1190
1191 Portability fixes for bitsets; this also avoids several GCC
1192 warnings.
1193
1194 * lib/abitset.c: Include <stddef.h>, for offsetof.
1195 * lib/lbitset.c: Likewise.
1196
1197 * lib/abitset.c (abitset_bytes): Return a size that is aligned
1198 properly for vectors of objects. Do not assume that adding a
1199 header size to a multiple of a word size yields a value that is
1200 properly aligned for the whole union.
1201 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1202
1203 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
1204 unique names for structures.
1205 * lib/ebitset.c (ebitset_bytes): Likewise.
1206 * lib/lbitset.c (lbitset_bytes): Likewise.
1207
1208 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
1209 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
1210 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
1211 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
1212 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
1213 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
1214 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
1215 to improve the type-checking that GCC can do.
1216 * lib/bitset.c (bitset_op4_cmp): Likewise.
1217 * lib/bitset_stats.c (bitset_stats_count,
1218 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
1219 bitset_stats_copy, bitset_stats_disjoint_p,
1220 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
1221 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
1222 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
1223 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
1224 bitset_stats_and_or_cmp, bitset_stats_andn_or,
1225 bitset_stats_andn_or_cmp, bitset_stats_or_and,
1226 bitset_stats_or_and_cmp): Likewise.
1227 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
1228 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
1229 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
1230 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
1231
1232 * lib/abitset.h: Include bitset.h, not bbitset.h.
1233 * lib/ebitset.h: Likewise.
1234 * lib/lbitset.h: Likewise.
1235
1236 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
1237 All instances of parameters of type enum bitset_opts are now of
1238 type enum_bitset_opts, to conform to the C Standard, and similarly
1239 for enum_bitset_type.
1240 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
1241 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
1242
1243 Do not use "struct bitset_struct" to mean different things in
1244 different modules. Not only is this confusing, it violates
1245 the C Standard, which requires that structure types in different
1246 modules must be compatible if one is to be passed to the other.
1247 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
1248 All instances of "struct bitset_struct *" replaced with "bitset".
1249 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
1250 (union bitset_union, struct abitset_struct, struct ebitset_struct,
1251 struct lbitset_struct, struct bitset_stats_struct): New types.
1252 All uses of struct bitset_struct changed to union bitset_union,
1253 etc.
1254 * lib/abitset.c (struct abitset_struct, abitset,
1255 struct bitset_struct): Remove.
1256 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
1257 struct bitset_struct): Remove.
1258 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
1259 bitset_struct): Remove.
1260 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
1261 Likewise.
1262
1263 Do not call a function of type T using a call that assumes the
1264 function is of a different type U. Standard C requires that a
1265 function must be called with a type that is compatible with its
1266 definition.
1267 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
1268 New decls.
1269 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
1270 New functions.
1271 * lib/ebitset.c (PFV): Remove.
1272 * lib/lbitset.c (PFV): Likewise.
1273 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
1274 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
1275 decls.
1276 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
1277 (ebitset_vtable): Use them.
1278 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
1279 lbitset_xor): New functions.
1280 (lbitset_vtable): Use them.
1281
1282 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
1283 Declare.
1284
1285 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
1286 GCC warning.
1287 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
1288 Use offsetof, for simplicity.
1289
6fbe4984
PE
12902002-10-06 Paul Eggert <eggert@twinsun.com>
1291
1292 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
1293 the same width as int. This reapplies a hunk of the 2002-08-12 patch
1294 <http://mail.gnu.org/pipermail/bison-patches/2002-August/001111.html>,
1295 which was inadvertently undone by the 2002-09-30 patch.
1296 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
1297 the same width as int.
1298
420f93c8
PE
12992002-10-04 Paul Eggert <eggert@twinsun.com>
1300
1301 Version 1.50.
1302
1303 * configure.ac (AC_INIT), NEWS: Increment version number.
1304
1305 * doc/bison.texinfo: Minor spelling, grammar, and white space
1306 fixes.
1307 (Symbols): Mention that any negative value returned from yylex
1308 signifies end-of-input. Warn about negative chars. Mention
1309 the portable Standard C character set.
1310
1311 The GNU coding standard says CFLAGS and YFLAGS are reserved
1312 for the installer to set.
1313 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
1314 * src/Makefile.am (AM_CFLAGS): Likewise.
1315 (AM_YFLAGS): Renamed from YFLAGS.
1316
1317 Fix some MAX and MIN problems.
1318 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
1319 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
1320 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
1321 * src/reader.c (reader): Use it.
1322
1323 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
1324 POSIX 1003.1-2001 has removed fgrep.
1325
13262002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1327
1328 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
1329 interpreted as signed.
1330 * lib/ebitset.c (ebitset_list): Fix bug.
1331
ff68026d
PE
13322002-10-01 Paul Eggert <eggert@twinsun.com>
1333
1334 More fixes for 64-bit hosts and large bitsets.
1335
1336 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
1337 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
1338 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
1339 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
1340 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
1341 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
1342 bitset_count_): Likewise.
1343 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
1344 bitset_first, bitset_last): Likewise.
1345 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
1346 bitset_stats_list_reverse, bitset_stats_size,
1347 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
1348 Likewise.
1349 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1350 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
1351 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
1352 bitsetv_reflexive_transitive_closure): Likewise.
1353 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
1354 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
1355 Likewise.
1356 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
1357 Likewise.
420f93c8 1358
ff68026d
PE
1359 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
1360 Use size_t, not unsigned int, to count bytes.
1361 * lib/abitset.h (abitset_bytes): Likewise.
1362 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
1363 Likewise.
1364 * lib/bitset.h (bitset_bytes): Likewise.
1365 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
1366 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
1367 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1368 * lib/ebitset.c (ebitset_bytes): Likewise.
1369 * lib/ebitset.h (ebitset_bytes): Likewise.
1370 * lib/lbitset.c (lbitset_bytes): Likewise.
1371 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 1372
ff68026d
PE
1373 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
1374 abitset_subset_p, abitset_disjoint_p, abitset_and,
1375 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
1376 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
1377 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
1378 abitset_or_and, abitset_or_and_cmp):
1379 Use bitset_windex instead of unsigned int.
1380 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
1381 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
1382 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
1383 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
1384 Likewise.
1385 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 1386
ff68026d
PE
1387 * lib/bitset.c (bitset_print):
1388 Use proper printf formats for widths of integer types.
1389 * lib/bitset_stats.c (bitset_percent_histogram_print,
1390 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
1391 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1392 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
1393 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 1394
ff68026d
PE
1395 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
1396 BITSET_SIZE_MAX): New macros.
1397 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
1398 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
1399 to BITSET_WINDEX_MAX.
1400
1401 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
1402 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
1403 since we now return the bitset_bindex type (not int).
1404
1405 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
1406 when computing sizes.
1407 * lib/ebitset.c (ebitset_elts_grow): Likewise.
1408
1409 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
1410 and avoid cast to unsigned.
1411
6aa452a6
AD
14122002-09-30 Akim Demaille <akim@epita.fr>
1413
1414 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1415 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
1416 Updates from Michael Hayes.
1417
927f7817
AD
14182002-09-30 Art Haas <ahaas@neosoft.com>
1419
1420 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
1421 invocations.
1422 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
1423 defined.
1424
9738f41e
AD
14252002-09-27 Akim Demaille <akim@epita.fr>
1426
1427 Version 1.49c.
1428
a5c75d7f
AD
14292002-09-27 Akim Demaille <akim@epita.fr>
1430
1431 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
1432 (Because of AC_LIBSOURCE).
1433
8280e179
AD
14342002-09-27 Akim Demaille <akim@epita.fr>
1435
1436 Playing with Autoscan.
1437
1438 * configure.ac: Remove the old LIBOBJ tweaks.
1439 (AC_REPLACE_FUNCS): Add strrchr and strtol.
1440 * lib/strrchr.c: New.
1441 * lib/strtol.c: New, from the Coreutils 4.5.1.
1442
ae64af35
AD
14432002-09-27 Akim Demaille <akim@epita.fr>
1444
1445 Playing with Autoscan.
1446
1447 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
1448 * lib/Makefile.am (libbison_a_SOURCES): No longer include
1449 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
1450 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
1451 Coreutils 4.5.1.
1452
d1a1114f
AD
14532002-09-24 Akim Demaille <akim@epita.fr>
1454
1455 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
1456 (Frequently Asked Questions, Parser Stack Overflow): New.
1457
b906441c
AD
14582002-09-13 Akim Demaille <akim@epita.fr>
1459
1460 Playing with autoscan.
1461
1462 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
1463 * src/files.c (skeleton_find): Remove, unused.
1464 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
1465 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
1466
bd701811
AD
14672002-09-13 Akim Demaille <akim@epita.fr>
1468
1469 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
1470 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
1471
e0a13e7b
AD
14722002-09-13 Akim Demaille <akim@epita.fr>
1473
1474 * configure.ac: Require 2.54.
1475 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
1476 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
1477 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
1478 Remove, provided by Autoconf macros.
1479
c97011bf
AD
14802002-09-12 Akim Demaille <akim@epita.fr>
1481
1482 * m4/prereq.m4: Update, from Coreutils 4.5.1.
1483
d862b1be
AD
14842002-09-12 Akim Demaille <akim@epita.fr>
1485
1486 * m4/prereq.m4: Update, from Fileutils 4.1.5.
1487 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
1488 Reported by Martin Mokrejs.
1489
3d38c03a
AD
14902002-09-10 Akim Demaille <akim@epita.fr>
1491
1492 * src/parse-gram.y: Associate a human readable string to each
1493 token type.
1494 * tests/regression.at (Invalid inputs): Adjust.
1495
b6347355
AD
14962002-09-10 Gary V. Vaughan <gary@gnu.org>
1497
1498 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
1499 with an Autoconf-2.5x style configure.ac.
1500
09ba4ab2
PE
15012002-09-06 Paul Eggert <eggert@twinsun.com>
1502
1503 * doc/bison.texinfo (Conditions): Make explicit that the GPL
1504 exception applies only to yacc.c. This is a modification of a
1505 patch originally suggested by Akim Demaille.
1506
21846f69
AD
15072002-09-06 Akim Demaille <akim@epita.fr>
1508
09ba4ab2
PE
1509 * data/c.m4 (b4_copyright): Move the GPL exception comment from
1510 here to...
1511 * data/yacc.c: here.
1512
21846f69
AD
1513 * data/lalr1.cc (struct yyltype): Don't define it, since we use
1514 LocationType.
1515 (b4_ltype): Default to yy::Location from location.hh.
1516
c0ad8bf3
AD
15172002-09-04 Jim Meyering <jim@meyering.net>
1518
1519 * data/yacc.c: Guard the declaration of yytoknum also with
1520 `#ifdef YYPRINT', so it is declared only when used.
1521
3a93251e
AD
15222002-09-04 Akim Demaille <akim@epita.fr>
1523
1524 * configure.in: Rename as...
1525 * configure.ac: this.
1526 Bump to 1.49c.
1527
427c0dda
AD
15282002-09-04 Akim Demaille <akim@epita.fr>
1529
1530 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
1531 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
1532 translate maintainer only messages.
1533
6a254321
PE
15342002-08-12 Paul Eggert <eggert@twinsun.com>
1535
645e30d1
PE
1536 Version 1.49b.
1537
6a254321
PE
1538 * Makefile.am (SUBDIRS): Remove intl.
1539 (DISTCLEANFILES): Remove.
1540 * NEWS: Mention that GNU M4 is now required. Clarify what is
1541 meant by "larger grammars". Mention the pt_BR translation.
1542 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
1543 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
1544 Bump version from 0.11.2 to 0.11.5.
1545 (BISON_PREREQ_STAGE): Remove.
1546 (AM_GNU_GETTEXT): Use external gettext.
1547 (AC_OUTPUT): Remove intl/Makefile.
1548
1549 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
1550
1551 * data/glr.c: Include string.h, for strlen.
1552 (yyreportParseError): Use size_t for yysize.
1553 (yy_yypstack): No longer nested inside yypstates, as nested
1554 functions are not portable. Do not assume size_t is the
1555 same width as int.
1556 (yypstates): Do not assume that ptrdiff_t is the same width
1557 as int, and similarly for yyposn and YYINDEX.
1558
1559 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
1560
1561 * lib/Makefile.am (INCLUDES): Do not include from the intl
1562 directory, which has been removed.
1563 * src/Makefile.am (INCLUDES): Likewise.
1564
1565 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
1566 (bitsets_sources, additional_bitsets_sources, timevars_sources):
1567 New vars.
1568
1569 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
1570 * tests/Makefile.am (EXTRA_DIST): Likewise.
1571
1572 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
1573 Do not assume that bitset_windex is the same width as unsigned.
1574
1575 * lib/abitset.c (abitset_unused_clear): Do not assume that
1576 bitset_word is the same width as int.
1577 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
1578 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
1579 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
1580 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
1581 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
1582
1583 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
1584 portability to one's complement hosts!).
1585 * lib/ebitset.c (ebitset_op1): Likewise.
1586 * lib/lbitset.c (lbitset_op1): Likewise.
1587
1588 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
1589 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1590 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
1591 Sync with fileutils.
1592 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
1593 lib/gettext.h: Sync with diffutils.
1594
1595 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
1596 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
1597
1598 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
1599 PROTOTYPES to check for prototypes, and "defined __STDC__" to
1600 check for void *.
1601
1602 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
1603 size_t; the old version tried to do this but casted improperly.
1604 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
1605 (bitset_test): Now returns int, not unsigned long.
1606
1607 * lib/bitset_stats.c: Include "gettext.h".
1608 (_): New macro.
1609 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
1610 name locals "index", as it generates unnecessary warnings on some
1611 hosts that have an "index" function.
1612
1613 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
1614 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
1615 they need translation.
1616 * src/LR0.c (state_list_append, new_itemsets, get_state,
1617 append_states, generate_states): Likewise.
1618 * src/assoc.c (assoc_to_string): Likewise.
1619 * src/closure.c (print_closure, set_firsts, closure): Likewise.
1620 * src/gram.c (grammar_dump): Likewise.
1621 * src/injections.c (injections_compute): Likewise.
1622 * src/lalr.c (lookaheads_print): Likewise.
1623 * src/relation.c (relation_transpose): Likewise.
1624 * src/scan-gram.l: Likewise.
1625 * src/tables.c (table_grow, pack_vector): Likewise.
1626
1627 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
1628 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
1629 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
1630 * m4/mbstate_t.m4: Sync with fileutils.
1631 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
1632
1633 * po/LINGUAS: Add pt_BR.
1634 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
1635 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
1636 lib/timevar.c.
1637 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
1638 manual recommends.
1639 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
1640
1641 * src/complain.c (strerror_r): Remove decl; not needed.
1642 (strerror): Use same pattern as ../lib/error.c.
1643
1644 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
1645
1646 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
1647
1648 * src/main.c (main): Cast result of bindtextdomain and textdomain
1649 to void, to avoid a GCC warning when --disable-nls is in effect.
1650
1651 * src/scan-gram.l: Use strings rather than escapes when possible,
1652 to minimize the number of warnings from xgettext.
1653 (handle_action_dollar, handle_action_at): Don't use isdigit,
1654 as it mishandles negative chars and it may not work as expected
1655 outside the C locale.
1656
1657 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
1658 this is a GCC extension and is not portable to other compilers.
1659
1660 * src/system.h (alloca): Use same pattern as ../lib/error.c.
1661 Do not include <ctype.h>; no longer needed.
1662 Do not include <malloc.h>; no longer needed (and generates
1663 warnings on OpenBSD 3.0).
1664
1665 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
1666 it's not portable.
1667
1668 * tests/regression.at: Do not use 'cc -c input.c -o input';
1669 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
1670
1671 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
1672 exit status as failure, not just exit status 1. Sun C exits
1673 with status 2 sometimes.
1674
1675 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
1676 Use it for the two large tests.
1677
c8f002c7
AD
16782002-08-02 Akim Demaille <akim@epita.fr>
1679
1680 * src/conflicts.c (conflicts_output): Don't output rules never
1681 reduced here, since anyway that computation doesn't work.
1682 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
1683 (rule_useless_p, rule_never_reduced_p): New.
1684 (grammar_rules_partial_print): Use a filter instead of a range.
1685 Display the title only if needed.
1686 (grammar_rules_print): Adjust.
1687 (grammar_rules_never_reduced_report): New.
1688 * src/tables.c (action_row): Move the computation of rules never
1689 reduced to...
1690 (token_actions): here.
1691 * src/main.c (main): Make the parser before making the report, so
1692 that rules never reduced are computed.
1693 Call grammar_rules_never_reduced_report.
1694 * src/print.c (print_results): Report rules never reduced.
1695 * tests/conflicts.at, tests/reduce.at: Adjust.
1696
cd08e51e
AD
16972002-08-01 Akim Demaille <akim@epita.fr>
1698
1699 Instead of attaching lookaheads and duplicating the rules being
1700 reduced by a state, attach the lookaheads to the reductions.
1701
1702 * src/state.h (state_t): Remove the `lookaheads',
1703 `lookaheads_rule' member.
1704 (reductions_t): Add a `lookaheads' member.
1705 Use a regular array for the `rules'.
1706 * src/state.c (reductions_new): Initialize the lookaheads member
1707 to 0.
1708 (state_rule_lookaheads_print): Adjust.
1709 * src/state.h, src/state.c (state_reductions_find): New.
1710 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
1711 (count_rr_conflicts): Adjust.
1712 * src/lalr.c (LArule): Remove.
1713 (add_lookback_edge): Adjust.
1714 (state_lookaheads_count): New.
1715 (states_lookaheads_initialize): Merge into...
1716 (initialize_LA): this.
1717 (lalr_free): Adjust.
1718 * src/main.c (main): Don't free nullable and derives too early: it
1719 is used by --verbose.
1720 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
1721
bb0027a9
AD
17222002-08-01 Akim Demaille <akim@epita.fr>
1723
1724 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
1725 `rule_number_t**'.
1726 (set_derives, free_derives): Rename as...
1727 (derives_compute, derives_free): this.
1728 Adjust all dependencies.
1729 * src/nullable.c (set_nullable, free_nullable): Rename as...
1730 (nullable_compute, nullable_free): these.
1731 (rule_list_t): Store rule_t *, not rule_number_t.
1732 * src/state.c (state_rule_lookaheads_print): Directly compare rule
1733 pointers, instead of their numbers.
1734 * src/main.c (main): Call nullable_free, and derives_free earlier,
1735 as they were lo longer used.
1736
3325ddc4
AD
17372002-08-01 Akim Demaille <akim@epita.fr>
1738
1739 * lib/timevar.c (get_time): Include children time.
1740 * src/lalr.h (LA, LArule): Don't export them: used with the
1741 state_t.
1742 * src/lalr.c (LA, LArule): Static.
1743 * src/lalr.h, src/lalr.c (lalr_free): New.
1744 * src/main.c (main): Call it.
1745 * src/tables.c (pack_vector): Check whether loc is >= to the
1746 table_size, not >.
1747 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
1748 (tables_generate): do it, since that's also it which allocates
1749 them.
1750 Don't free LA and LArule, main does.
1751
c6f1a33c
AD
17522002-07-31 Akim Demaille <akim@epita.fr>
1753
1754 Separate parser tables computation and output.
1755
1756 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
1757 (conflict_list, conflict_list_cnt, table, check, table_ninf)
1758 (yydefgoto, yydefact, high): Move to...
1759 * src/tables.h, src/tables.c: here.
1760 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1761 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1762 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
1763 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
1764 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
1765 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
1766 (action_row, save_row, token_actions, save_column, default_goto)
1767 (goto_actions, sort_actions, matching_state, pack_vector)
1768 (table_ninf_remap, pack_table, prepare_actions): Move to...
1769 * src/tables.c: here.
1770 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
1771 * src/output.c (token_actions, output_base, output_conflicts)
1772 (output_check): Merge into...
1773 (prepare_actions): this.
1774 (actions_output): Rename as...
1775 (user_actions_output): this.
1776 * src/main.c (main): Call tables_generate and tables_free.
1777
1509d42f
AD
17782002-07-31 Akim Demaille <akim@epita.fr>
1779
1780 Steal GCC's --time-report support.
1781
1782 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
1783 stolen/adjusted from GCC.
1784 * m4/stage.m4: Remove time related checks.
1785 * m4/timevar.m4: New.
1786 * configure.in: Adjust.
1787 * src/system.h: Adjust to using timevar.h.
1788 * src/getargs.h, src/getargs.c: Support trace_time for
1789 --trace=time.
1790 * src/main.c (stage): Remove.
1791 (main): Replace `stage' invocations with timevar calls.
1792 * src/output.c: Insert pertinent timevar calls.
1793
273a74fa
AD
17942002-07-31 Akim Demaille <akim@epita.fr>
1795
1796 Let --trace have arguments.
1797
1798 * src/getargs.h (enum trace_e): New.
1799 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
1800 (long_options, short_options): --trace/-T takes an optional
1801 argument.
1802 Change all the uses of trace_flag to reflect the new flags.
1803 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
1804
1805 Strengthen `stage' portability.
1806
1807 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
1808 * configure.in: Use it.
1809 Don't check for malloc.h and sys/times.h.
1810 * src/system.h: Include them when appropriate.
1811 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
1812 times and struct tms are available.
1813
217598da
AD
18142002-07-30 Akim Demaille <akim@epita.fr>
1815
1816 In verbose parse error message, don't report `error' as an
1817 expected token.
1818 * tests/actions.at (Printers and Destructors): Adjust.
1819 * tests/calc.at (Calculator $1): Adjust.
1820 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
1821 error message, do not report the parser accepts the error token in
1822 that state.
1823
52489d44
AD
18242002-07-30 Akim Demaille <akim@epita.fr>
1825
1826 Normalize conflict related messages.
1827
1828 * src/complain.h, src/complain.c (warn, complain): New.
1829 * src/conflicts.c (conflicts_print): Use them.
1830 (conflict_report_yacc): New, extracted from...
1831 (conflicts_print): here.
1832 * tests/conflicts.at, tests/existing.at: Adjust.
1833
e8832397
AD
18342002-07-30 Akim Demaille <akim@epita.fr>
1835
1836 Report rules which are never reduced by the parser: those hidden
1837 by conflicts.
1838
1839 * src/LR0.c (save_reductions): Don't make the final state too
1840 different: save its reduction (accept) instead of having a state
1841 without any action (no shift or goto, no reduce).
1842 Note: the final state is now a ``regular'' state, i.e., the
1843 parsers now contain `reduce 0' as default reduction.
1844 Nevertheless, since they decide to `accept' when yystate =
1845 final_state, they still will not reduce rule 0.
1846 * src/print.c (print_actions, print_reduction): Adjust.
1847 * src/output.c (action_row): Track reduced rules.
1848 (token_actions): Report rules never reduced.
1849 * tests/conflicts.at, tests/regression.at: Adjust.
1850
caf23d24
AD
18512002-07-30 Akim Demaille <akim@epita.fr>
1852
1853 `stage' was accidently included in a previous patch.
1854 Initiate its autoconfiscation.
1855
1856 * configure.in: Look for malloc.h and sys/times.h.
1857 * src/main.c (stage): Adjust.
1858 Report only when trace_flag.
1859
640748ee
AD
18602002-07-29 Akim Demaille <akim@epita.fr>
1861
1862 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
1863 state_number_t.
1864 (errs_t): symbol_t*, not symbol_number_t.
1865 (reductions_t): rule_t*, not rule_number_t.
1866 (FOR_EACH_SHIFT): New.
1867 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
1868 * src/print.c, src/print_graph.c: Adjust.
1869
88bce5a2
AD
18702002-07-29 Akim Demaille <akim@epita.fr>
1871
1872 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
1873
1874 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
1875 (endtoken, accept): these.
1876 * src/reader.c (reader): Set endtoken's default tag to "$end".
1877 Set undeftoken's tag to "$undefined" instead of "$undefined.".
1878 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
1879 Adjust.
1880
1bfb97db
AD
18812002-07-29 Akim Demaille <akim@epita.fr>
1882
1883 * src/reduce.c (reduce_grammar): When the language is empty,
1884 complain about the start symbol, not the axiom.
1885 Use its location.
1886 * tests/reduce.at (Empty Language): New.
1887
fc5734fe
AD
18882002-07-26 Akim Demaille <akim@epita.fr>
1889
1890 * src/reader.h, src/reader.c (gram_error): ... can't get
1891 yycontrol without making too strong assumptions on the parser
1892 itself.
1893 * src/output.c (prepare_tokens): Use the real 0th value of
1894 token_translations instead of `0'.
1895 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
1896 visible here.
1897 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
1898 for the time being: %locations ought to provide it to yyerror.
1899
3650b4b8
AD
19002002-07-25 Akim Demaille <akim@epita.fr>
1901
1902 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
1903 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
1904 * tests/regression.at (Web2c Actions): Adjust.
1905
4b3d3a8e
AD
19062002-07-25 Akim Demaille <akim@epita.fr>
1907
1908 Stop storing rules from 1 to nrules + 1.
1909
1910 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
1911 * src/nullable.c, src/output.c, src/print.c, src/reader.c
1912 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
1913 Iterate from 0 to nrules.
1914 Use rule_number_as_item_number and item_number_as_rule_number.
1915 Adjust to `derive' now containing possibly 0.
1916 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
1917 Handle the `- 1' part in rule numbers from/to item numbers.
1918 * src/conflicts.c (log_resolution): Fix the message which reversed
1919 shift and reduce.
1920 * src/output.c (action_row): Initialize default_rule to -1.
1921 (token_actions): Adjust.
1922 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
1923 expected output.
1924 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
1925
4a2a22f4
AD
19262002-07-25 Akim Demaille <akim@epita.fr>
1927
1928 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
1929 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
1930 (b4_c_knr_arg_decl): New.
1931 * data/yacc.c: Use it to define yysymprint, yydestruct, and
1932 yyreport_parse_error.
1933
b8df3223
AD
19342002-07-25 Akim Demaille <akim@epita.fr>
1935
1936 * data/yacc.c (yyreport_parse_error): New, extracted from...
1937 (yyparse): here.
1938 (yydestruct, yysymprint): Move above yyparse.
1939 Be K&R compliant.
1940
a762e609
AD
19412002-07-25 Akim Demaille <akim@epita.fr>
1942
1943 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
1944 replace...
1945 (b4_sint_type, b4_uint_type): these.
1946 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
1947 * tests/regression.at (Web2c Actions): Adjust.
1948
12b0043a
AD
19492002-07-25 Akim Demaille <akim@epita.fr>
1950
1951 * src/gram.h (TIEM_NUMBER_MAX): New.
1952 (item_number_of_rule_number, rule_number_of_item_number): Rename
1953 as...
1954 (rule_number_as_item_number, item_number_as_rule_number): these.
1955 Adjust dependencies.
1956 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1957 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1958 (symbol_number_to_vector_number): New.
1959 (order): Of vector_number_t* type.
1960 (base_t, BASE_MAX, BASE_MIN): New.
1961 (froms, tos, width, pos, check): Of base_t type.
1962 (action_number_t, ACTION_MIN, ACTION_MAX): New.
1963 (actrow): Of action_number_t type.
1964 (conflrow): Of unsigned int type.
1965 (table_ninf, base_ninf): New.
1966 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
1967 (muscle_insert_int_table, muscle_insert_base_table)
1968 (muscle_insert_rule_number_table): New.
1969 (prepare_tokens): Output `toknum' as int_table.
1970 (action_row): Returns a rule_number_t.
1971 Use ACTION_MIN, not SHRT_MIN.
1972 (token_actions): yydefact is rule_number_t*.
1973 (table_ninf_remap): New.
1974 (pack_table): Use it for `base' and `table'.
1975 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
1976 replaced with...
1977 (YYPACT_NINF, YYTABLE_NINF): these.
1978 (yypact, yytable): Compute their types instead of hard-coded
1979 `short'.
1980 * tests/regression.at (Web2c Actions): Adjust.
1981
5dde258a
AD
19822002-07-19 Akim Demaille <akim@epita.fr>
1983
1984 * src/scan-gram.l (id): Can start with an underscore.
1985
a945ec39
AD
19862002-07-16 Akim Demaille <akim@epita.fr>
1987
1988 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
1989 Adjust all former `associativity' dependencies.
1990 * src/symtab.c (symbol_new): Default associativity is `undef', not
1991 `right'.
1992 (symbol_check_alias_consistence): Adjust.
1993
fae437e8
AD
19942002-07-09 Akim Demaille <akim@epita.fr>
1995
1996 * doc/bison.texinfo: Properly set the ``header'' part.
1997 Use @dircategory ``GNU programming tools'' as per Texinfo's
1998 documentation.
1999 Use @copying.
2000
1a715ef2
AD
20012002-07-09 Akim Demaille <akim@epita.fr>
2002
2003 * lib/quotearg.h: Protect against multiple inclusions.
2004 * src/location.h (location_t): Add a `file' member.
2005 (LOCATION_RESET, LOCATION_PRINT): Adjust.
2006 * src/complain.c (warn_at, complain_at, fatal_at): Drop
2007 `error_one_per_line' support.
2008
a5d50994
AD
20092002-07-09 Akim Demaille <akim@epita.fr>
2010
2011 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
2012 * src/reader.c (lineno): Remove.
2013 Adjust all dependencies.
2014 (get_merge_function): Take a location and use complain_at.
2015 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
2016 * tests/regression.at (Invalid inputs, Mixing %token styles):
2017 Adjust.
2018
b275314e
AD
20192002-07-09 Akim Demaille <akim@epita.fr>
2020
2021 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
2022 recovery rule, and forbid extensions when --yacc.
2023 (gram_error): Use complain_at.
2024 * src/reader.c (reader): Exit if there were parse errors.
2025
865b9df1
AD
20262002-07-09 Akim Demaille <akim@epita.fr>
2027
2028 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
2029 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
2030 Reported by R Blake <blakers@mac.com>.
2031
c76e14da
AD
20322002-07-09 Akim Demaille <akim@epita.fr>
2033
2034 * data/yacc.c: Output the copyright notive in the header.
2035
7db2ed2d
AD
20362002-07-03 Akim Demaille <akim@epita.fr>
2037
2038 * src/output.c (froms, tos): Are state_number_t.
2039 (save_column): sp, sp1, and sp2 are state_number_t.
2040 (prepare): Rename `final' as `final_state_number', `nnts' as
2041 `nterms_number', `nrules' as `rules_number', `nstates' as
2042 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
2043 unused.
2044 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
2045 * data/lalr1.cc (nsym_): Remove, unused.
2046
e68e0410
AD
20472002-07-03 Akim Demaille <akim@epita.fr>
2048
2049 * src/lalr.h, src/lalr.c (goto_number_t): New.
2050 * src/lalr.c (goto_list_t): New.
2051 Propagate them.
2052 * src/nullable.c (rule_list_t): New.
2053 Propagate.
2054 * src/types.h: Remove.
2055
e1a4f3a4
AD
20562002-07-03 Akim Demaille <akim@epita.fr>
2057
2058 * src/closure.c (print_fderives): Use rule_rhs_print.
2059 * src/derives.c (print_derives): Use rule_rhs_print.
2060 (rule_list_t): New, replaces `shorts'.
2061 (set_derives): Add comments.
2062 * tests/sets.at (Nullable, Firsts): Adjust.
2063
536545f3
AD
20642002-07-03 Akim Demaille <akim@epita.fr>
2065
2066 * src/output.c (prepare_actions): Free `tally' and `width'.
2067 (prepare_actions): Allocate and free `order'.
2068 * src/symtab.c (symbols_free): Free `symbols'.
2069 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
2070 * src/output.c (m4_invoke): Move to...
2071 * src/scan-skel.l: here.
2072 (<<EOF>>): Close yyout, and free its name.
2073
8b752b00
AD
20742002-07-03 Akim Demaille <akim@epita.fr>
2075
2076 Fix some memory leaks, and fix a bug: state 0 was examined twice.
2077
2078 * src/LR0.c (new_state): Merge into...
2079 (state_list_append): this.
2080 (new_states): Merge into...
2081 (generate_states): here.
2082 (set_states): Don't ensure a proper `errs' state member here, do it...
2083 * src/conflicts.c (conflicts_solve): here.
2084 * src/state.h, src/state.c: Comment changes.
2085 (state_t): Rename member `shifts' as `transitions'.
2086 Adjust all dependencies.
2087 (errs_new): For consistency, also take the values as argument.
2088 (errs_dup): Remove.
2089 (state_errs_set): New.
2090 (state_reductions_set, state_transitions_set): Assert that no
2091 previous value was assigned.
2092 (state_free): New.
2093 (states_free): Use it.
2094 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
2095 temporary storage: use `errs' and `nerrs' as elsewhere.
2096 (set_conflicts): Allocate and free this `errs'.
2097
613f5e1a
AD
20982002-07-02 Akim Demaille <akim@epita.fr>
2099
2100 * lib/libiberty.h: New.
2101 * lib: Update the bitset implementation from upstream.
2102 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
2103 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
2104 * src/main.c: Adjust bitset stats calls.
2105
26e0cadc
PE
21062002-07-01 Paul Eggert <eggert@twinsun.com>
2107
2108 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
2109 char, so that negative chars don't collide with $.
2110
1154cced
AD
21112002-06-30 Akim Demaille <akim@epita.fr>
2112
2113 Have the GLR tests be `warning' checked, and fix the warnings.
2114
2115 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
2116 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
2117 (yyremoveDeletes): `yyi' and `yyj' are size_t.
2118 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
2119 (yyaddDeferredAction): static.
2120 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
2121 (yyreportParseError): yyprefix is const.
2122 yytokenp is used only when verbose.
2123 (yy__GNUC__): Replace with __GNUC__.
2124 (yypdumpstack): yyi is size_t.
2125 (yypreference): Un-yy local variables and arguments, to avoid
2126 clashes with `yyr1'. Anyway, we are not in the user name space.
2127 (yytname_size): be an int, as is compared with ints.
2128 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
2129 Use them.
2130 * tests/cxx-gram.at: Use quotation to protect $1.
2131 Use AT_COMPILE to enable warnings hunts.
2132 Prototype yylex and yyerror.
2133 `Use' argc.
2134 Include `string.h', not `strings.h'.
2135 Produce and prototype stmtMerge only when used.
2136 yylex takes a location.
2137
97650f4e
AD
21382002-06-30 Akim Demaille <akim@epita.fr>
2139
2140 We spend a lot of time in quotearg, in particular when --verbose.
2141
2142 * src/symtab.c (symbol_get): Store a quoted version of the key.
2143 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
2144 Adjust all callers.
2145
d2576365
AD
21462002-06-30 Akim Demaille <akim@epita.fr>
2147
2148 * src/state.h (reductions_t): Rename member `nreds' as num.
2149 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
2150 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
2151
ccaf65bc
AD
21522002-06-30 Akim Demaille <akim@epita.fr>
2153
2154 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
2155 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
2156 (shifts_to): Rename as...
2157 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
2158 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
2159 (TRANSITION_IS_DISABLED, transitions_to): these.
2160
87675353
AD
21612002-06-30 Akim Demaille <akim@epita.fr>
2162
2163 * src/print.c (print_shifts, print_gotos): Merge into...
2164 (print_transitions): this.
2165 (print_transitions, print_errs, print_reductions): Align the
2166 lookaheads columns.
2167 (print_core, print_transitions, print_errs, print_state,
2168 print_grammar): Output empty lines separator before, not after.
2169 (state_default_rule_compute): Rename as...
2170 (state_default_rule): this.
2171 * tests/conflicts.at (Defaulted Conflicted Reduction),
2172 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
2173 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
2174
ce4ccb4b
AD
21752002-06-30 Akim Demaille <akim@epita.fr>
2176
2177 Display items as we display rules.
2178
2179 * src/gram.h, src/gram.c (rule_lhs_print): New.
2180 * src/gram.c (grammar_rules_partial_print): Use it.
2181 * src/print.c (print_core): Likewise.
2182 * tests/conflicts.at (Defaulted Conflicted Reduction),
2183 (Unresolved SR Conflicts): Adjust.
2184 (Unresolved SR Conflicts): Adjust and rename as...
2185 (Resolved SR Conflicts): this, as was meant.
2186 * tests/regression.at (Web2c Report): Adjust.
2187
bc933ef1
AD
21882002-06-30 Akim Demaille <akim@epita.fr>
2189
2190 * src/print.c (state_default_rule_compute): New, extracted from...
2191 (print_reductions): here.
2192 Pessimize, but clarify the code.
2193 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
2194
53d4308d
AD
21952002-06-30 Akim Demaille <akim@epita.fr>
2196
2197 * src/output.c (action_row): Let default_rule be always a rule
2198 number.
2199
574fb2d5
AD
22002002-06-30 Akim Demaille <akim@epita.fr>
2201
2202 * src/closure.c (print_firsts, print_fderives, closure):
2203 Use BITSET_EXECUTE.
2204 * src/lalr.c (lookaheads_print): Likewise.
2205 * src/state.c (state_rule_lookaheads_print): Likewise.
2206 * src/print_graph.c (print_core): Likewise.
2207 * src/print.c (print_reductions): Likewise.
2208 * src/output.c (action_row): Likewise.
2209 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
2210
05811fd7
AD
22112002-06-30 Akim Demaille <akim@epita.fr>
2212
2213 * src/print_graph.c: Use report_flag.
2214
0e4d5753
AD
22152002-06-30 Akim Demaille <akim@epita.fr>
2216
2217 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
2218 to...
2219 * src/relation.h, src/relation.c (traverse, relation_digraph)
2220 (relation_print, relation_transpose): New.
2221
24c7d800
AD
22222002-06-30 Akim Demaille <akim@epita.fr>
2223
2224 * src/state.h, src/state.c (shifts_to): New.
2225 * src/lalr.c (build_relations): Use it.
2226
9222837b
AD
22272002-06-30 Akim Demaille <akim@epita.fr>
2228
2229 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
2230 (item_number_of_rule_number, rule_number_of_item_number): New.
2231 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
2232 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
2233 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
2234 Propagate their use.
2235 Much remains to be done, in particular wrt `shorts' from types.h.
2236
260008e5
AD
22372002-06-30 Akim Demaille <akim@epita.fr>
2238
2239 * src/symtab.c (symbol_new): Initialize the `printer' member.
2240
8a731ca8
AD
22412002-06-30 Akim Demaille <akim@epita.fr>
2242
2243 * src/LR0.c (save_reductions): Remove, replaced by...
2244 * src/state.h, src/state.c (state_reductions_set): New.
2245 (reductions, errs): Rename as...
2246 (reductions_t, errs_t): these.
2247 Adjust all dependencies.
2248
32e1e0a4
AD
22492002-06-30 Akim Demaille <akim@epita.fr>
2250
2251 * src/LR0.c (state_list_t, state_list_append): New.
2252 (first_state, last_state): Now symbol_list_t.
2253 (this_state): Remove.
2254 (new_itemsets, append_states, save_reductions): Take a state_t as
2255 argument.
2256 (set_states, generate_states): Adjust.
2257 (save_shifts): Remove, replaced by...
2258 * src/state.h, src/state.c (state_shifts_set): New.
2259 (shifts): Rename as...
2260 (shifts_t): this.
2261 Adjust all dependencies.
2262 * src/state.h (state_t): Remove the `next' member.
2263
e5fb6710
AD
22642002-06-30 Akim Demaille <akim@epita.fr>
2265
2266 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
2267 escaped in slot 0.
2268
c7ca99d4
AD
22692002-06-30 Akim Demaille <akim@epita.fr>
2270
2271 Use hash.h for the state hash table.
2272
2273 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
2274 (allocate_storage): Use state_hash_new.
2275 (free_storage): Use state_hash_free.
2276 (new_state, get_state): Adjust.
2277 * src/lalr.h, src/lalr.c (states): Move to...
2278 * src/states.h (state_t): Remove the `link' member, no longer
2279 used.
2280 * src/states.h, src/states.c: here.
2281 (state_hash_new, state_hash_free, state_hash_lookup)
2282 (state_hash_insert, states_free): New.
2283 * src/states.c (state_table, state_compare, state_hash): New.
2284 * src/output.c (output_actions): Do not free states now, since we
2285 still need to know the final_state number in `prepare', called
2286 afterwards. Do it...
2287 * src/main.c (main): here: call states_free after `output'.
2288
df0e7316
AD
22892002-06-30 Akim Demaille <akim@epita.fr>
2290
2291 * src/state.h, src/state.c (state_new): New, extracted from...
2292 * src/LR0.c (new_state): here.
2293 * src/state.h (STATE_ALLOC): Move to...
2294 * src/state.c: here.
2295 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
2296 * src/state.h, src/state.c: here.
2297
39f41916
AD
22982002-06-30 Akim Demaille <akim@epita.fr>
2299
2300 * src/reader.c (gensym): Rename as...
2301 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
2302 (getsym): Rename as...
2303 (symbol_get): this.
2304
d57650a5
AD
23052002-06-30 Akim Demaille <akim@epita.fr>
2306
2307 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
2308 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
2309 * src/output.c, src/print.c, src/print_graph.c: Propagate.
2310 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
2311
5a08f1ce
AD
23122002-06-30 Akim Demaille <akim@epita.fr>
2313
2314 Make the test suite pass with warnings checked.
2315
2316 * tests/actions.at (Printers and Destructors): Improve.
2317 Avoid unsigned vs. signed issues.
2318 * tests/calc.at: Don't exercise the scanner here, do it...
2319 * tests/input.at (Torturing the Scanner): here.
2320
720623af
PH
23212002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2322
88e7e941 2323 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
2324 reorganize first lines parallel to yacc.c.
2325
fb8135fa
AD
23262002-06-28 Akim Demaille <akim@epita.fr>
2327
2328 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
2329 (b4_token_enum, b4_token_defines): New, factored from...
2330 * data/lalr1.cc, data/yacc.c, glr.c: here.
2331
41442480
AD
23322002-06-28 Akim Demaille <akim@epita.fr>
2333
2334 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
2335 unused variables.
2336 * src/output.c (merger_output): static.
2337
e0e5bf84
AD
23382002-06-28 Akim Demaille <akim@epita.fr>
2339
2340 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
2341 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
2342 pacify GCC.
2343 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 2344
676385e2
PH
23452002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2346
2347 Accumulated changelog for new GLR parsing features.
2348
6a254321 2349 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
2350 conflicts_total_count.
2351 * src/conflicts.h: Ditto.
2352 * src/output.c (token_actions): Use the new name.
2353 (output_conflicts): Change conflp => conflict_list_heads, and
2354 confl => conflict_list for better readability.
2355 * data/glr.c: Use the new names.
2356 * NEWS: Add self to GLR announcement.
e0e5bf84 2357
676385e2
PH
2358 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
2359
2360 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
2361 Akim Demaille.
2362
2363 * data/bison.glr: Change name to glr.c
2364 * data/glr.c: Renamed from bison.glr.
2365 * data/Makefile.am: Add glr.c
e0e5bf84
AD
2366
2367 * src/getargs.c:
2368
676385e2
PH
2369 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
2370 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 2371
676385e2
PH
2372 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2373
2374 * data/bison.glr: Be sure to restore the
2375 current #line when returning to the skeleton contents after having
2376 exposed the input file's #line.
2377
2378 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2379
2380 * data/bison.glr: Bring up to date with changes to bison.simple.
2381
2382 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2383
2384 * data/bison.glr: Correct definitions that use b4_prefix.
2385 Various reformatting.
2386 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
2387 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
2388 yytokenp argument; now part of stack.
2389 (yychar): Define to behave as documented.
2390 (yyclearin): Ditto.
e0e5bf84 2391
676385e2
PH
2392 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2393
2394 * src/reader.h: Add declaration for free_merger_functions.
2395
2396 * src/reader.c (merge_functions): New variable.
2397 (get_merge_function): New function.
2398 (free_merger_functions): New function.
2399 (readgram): Check for %prec that is not followed by a symbol.
2400 Handle %dprec and %merge declarations.
2401 (packgram): Initialize dprec and merger fields in rules array.
2402
2403 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
2404 conflict_list_cnt, conflict_list_free): New variables.
2405 (table_grow): Also grow conflict_table.
e0e5bf84 2406 (prepare_rules): Output dprec and merger tables.
676385e2 2407 (conflict_row): New function.
e0e5bf84 2408 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
2409 default reduction in conflicted states for GLR parser so that there
2410 are spaces for the conflict lists.
2411 (save_row): Also save conflict information.
2412 (token_actions): Allocate conflict list.
2413 (merger_output): New function.
2414 (pack_vector): Pack conflict table, too.
2415 (output_conflicts): New function to output yyconflp and yyconfl.
2416 (output_check): Allocate conflict_tos.
2417 (output_actions): Output conflict tables, also.
2418 (output_skeleton): Output b4_mergers definition.
2419 (prepare): Output b4_max_rhs_length definition.
2420 Use 'bison.glr' as default skeleton for GLR parsers.
2421
2422 * src/gram.c (glr_parser): New flag.
2423 (grammar_free): Call free_merger_functions.
2424
2425 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
2426 all pairs of conflicting reductions, rather than just all tokens
2427 causing conflicts. Needed to size conflict tables.
e0e5bf84 2428 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
2429 interface.
2430 (conflicts_print): Ditto.
2431 (count_total_conflicts): New function.
2432
2433 * src/reader.h (merger_list): New type.
2434 (merge_functions): New variable.
2435
2436 * src/lex.h (tok_dprec, tok_merge): New token types.
2437
2438 * src/gram.h (rule_s): Add dprec and merger fields.
2439 (glr_parser): New flag.
2440
2441 * src/conflicts.h (count_total_conflicts): New function.
2442
2443 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
2444
2445 * doc/bison.texinfo (Generalized LR Parsing): New section.
2446 (GLR Parsers): New section.
2447 (Language and Grammar): Mention GLR parsing.
2448 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
2449 Correct typo ("tge" -> "the").
2450
2451 * data/bison.glr: New skeleton for GLR parsing.
2452
2453 * tests/cxx-gram.at: New tests for GLR parsing.
2454
2455 * tests/testsuite.at: Include cxx-gram.at.
2456
2457 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 2458
676385e2
PH
2459 * src/parse-gram.y:
2460
2461 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
2462
2463 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 2464
b5480d74 24652002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
2466
2467 * src/options.h, src/options.c: Remove.
2468 * src/getargs.c (short_options, long_options): New.
2469
60491a94
AD
24702002-06-27 Akim Demaille <akim@epita.fr>
2471
2472 * data/bison.simple, data/bison.c++: Rename as...
2473 * data/yacc.c, data/lalr1.cc: these.
2474 * doc/bison.texinfo (Environment Variables): Remove.
2475
9be0c25b
AD
24762002-06-25 Raja R Harinath <harinath@cs.umn.edu>
2477
2478 * src/getargs.c (report_argmatch): Initialize strtok().
2479
1ae72863
AD
24802002-06-20 Akim Demaille <akim@epita.fr>
2481
2482 * data/bison.simple (b4_symbol_actions): New, replaces...
2483 (b4_symbol_destructor, b4_symbol_printer): these.
2484 (yysymprint): Be sure to call YYPRINT only for tokens, and using
2485 user token numbers.
2486
87542d29
AD
24872002-06-20 Akim Demaille <akim@epita.fr>
2488
2489 * data/bison.simple (yydestructor): Rename as...
2490 (yydestruct): this.
2491
1a31ed21
AD
24922002-06-20 Akim Demaille <akim@epita.fr>
2493
2494 * src/symtab.h, src/symtab.c (symbol_type_set)
2495 (symbol_destructor_set, symbol_precedence_set): The location is
2496 the last argument.
2497 Adjust all callers.
2498
e776192e
AD
24992002-06-20 Akim Demaille <akim@epita.fr>
2500
2501 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
2502 internals.
2503 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
2504 Takes a location.
2505 * src/symtab.h, src/symtab.c (symbol_class_set)
2506 (symbol_user_token_number_set): Likewise.
2507 Adjust all callers.
2508 Promote complain_at.
2509 * tests/input.at (Type Clashes): Adjust.
2510
5c1180b3
AD
25112002-06-20 Akim Demaille <akim@epita.fr>
2512
2513 * data/bison.simple (YYLEX): Fix the declaration when
2514 %pure-parser.
2515
e3170060
AD
25162002-06-20 Akim Demaille <akim@epita.fr>
2517
2518 * data/bison.simple (yysymprint): Don't print the token number,
2519 just its name.
2520 * tests/actions.at (Destructors): Rename as...
2521 (Printers and Destructors): this.
2522 Also exercise %printer.
2523
253862fd
AD
25242002-06-20 Akim Demaille <akim@epita.fr>
2525
2526 * data/bison.simple (YYDSYMPRINT): New.
2527 Use it to remove many of the #if YYDEBUG/if (yydebug).
2528
366eea36
AD
25292002-06-20 Akim Demaille <akim@epita.fr>
2530
2531 * src/symtab.h, src/symtab.c (symbol_t): printer and
2532 printer_location are new members.
2533 (symbol_printer_set): New.
2534 * src/parse-gram.y (PERCENT_PRINTER): New token.
2535 Handle its associated rule.
2536 * src/scan-gram.l: Adjust.
2537 (handle_destructor_at, handle_destructor_dollar): Rename as...
2538 (handle_symbol_code_at, handle_symbol_code_dollar): these.
2539 * src/output.c (symbol_printers_output): New.
2540 (output_skeleton): Call it.
2541 * data/bison.simple (yysymprint): New. Cannot be named yyprint
2542 since there are already many grammar files with a user `yyprint'.
2543 Replace the calls to YYPRINT to calls to yysymprint.
2544 * tests/calc.at: Adjust.
2545 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
2546 taking advantage of parser very internal details (stack size!).
2547
4f25ebb0
AD
25482002-06-20 Akim Demaille <akim@epita.fr>
2549
2550 * src/scan-gram.l: Complete the scanner with the missing patterns
2551 to pacify Flex.
2552 Use `quote' and `symbol_tag_get' where appropriate.
2553
93b68a0e
AD
25542002-06-19 Akim Demaille <akim@epita.fr>
2555
2556 * tests/actions.at (Destructors): Augment to test locations.
2557 * data/bison.simple (yydestructor): Pass it the current location
2558 if locations are enabled.
2559 Prototype only when __STDC__ or C++.
2560 Change the argument names to move into the yy name space: there is
2561 user code here.
2562
58612f1d
AD
25632002-06-19 Akim Demaille <akim@epita.fr>
2564
74310291
AD
2565 * data/bison.simple (b4_pure_if): New.
2566 Use it instead of #ifdef YYPURE.
2567
25682002-06-19 Akim Demaille <akim@epita.fr>
2569
2570 * data/bison.simple (b4_location_if): New.
58612f1d
AD
2571 Use it instead of #ifdef YYLSP_NEEDED.
2572
f25bfb75
AD
25732002-06-19 Akim Demaille <akim@epita.fr>
2574
2575 Prepare @$ in %destructor, but currently don't bind it in the
2576 skeleton, as %location use is not cleaned up yet.
2577
2578 * src/scan-gram.l (handle_dollar, handle_destructor_at)
2579 (handle_action_at): New.
2580 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
2581 a braced_code_t and a location as additional arguments.
2582 (handle_destructor_dollar): Instead of requiring `b4_eval', just
2583 unquote one when outputting `b4_dollar_dollar'.
2584 Adjust callers.
2585 * data/bison.simple (b4_eval): Remove.
2586 (b4_symbol_destructor): Adjust.
2587 * tests/input.at (Invalid @n): Adjust.
2588
c732d2c6
AD
25892002-06-19 Zack Weinberg <zack@codesourcery.com>
2590
2591 * doc/bison.texinfo: Document ability to have multiple
2592 prologue sections.
2593
8c165d89
AD
25942002-06-18 Akim Demaille <akim@epita.fr>
2595
2596 * src/files.c (compute_base_names): When computing the output file
2597 names from the input file name, strip the directory part.
2598
ca98bf57
AD
25992002-06-18 Akim Demaille <akim@epita.fr>
2600
2601 * data/bison.simple.new: Comment changes.
2602 Reported by Andreas Schwab.
2603
0bfb02ff
AD
26042002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
2605
2606 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
2607 there are no `label `yyoverflowlab' defined but not used' warnings
2608 when yyoverflow is defined.
2609
24c0aad7
AD
26102002-06-18 Akim Demaille <akim@epita.fr>
2611
2612 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
2613 new member.
2614 (symbol_destructor_set): Adjust.
2615 * src/output.c (symbol_destructors_output): Output the destructor
2616 locations.
2617 Output the symbol name.
2618 * data/bison.simple (b4_symbol_destructor): Adjust.
2619
5719c109
AD
26202002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
2621 and Akim Demaille <akim@epita.fr>
2622
2623 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
2624 what's left on the stack when the error recovery hits EOF.
2625 * tests/actions.at (Destructors): Complete to exercise this case.
2626
9280d3ef
AD
26272002-06-17 Akim Demaille <akim@epita.fr>
2628
2629 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
2630 arguments is really empty, not only equal to `[]'.
2631 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
2632 member.
2633 (symbol_destructor_set): New.
2634 * src/output.c (symbol_destructors_output): New.
2635 * src/reader.h (brace_code_t, current_braced_code): New.
2636 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
2637 (handle_dollar): Rename as...
2638 (handle_action_dollar): this.
2639 (handle_destructor_dollar): New.
2640 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
2641 (grammar_declaration): Use it.
2642 * data/bison.simple (yystos): Is always defined.
2643 (yydestructor): New.
2644 * tests/actions.at (Destructors): New.
2645 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
2646
dafdc66f
AD
26472002-06-17 Akim Demaille <akim@epita.fr>
2648
2649 * src/symlist.h, src/symlist.c (symbol_list_length): New.
2650 * src/scan-gram.l (handle_dollar, handle_at): Compute the
2651 rule_length only when needed.
2652 * src/output.c (actions_output, token_definitions_output): Output
2653 the full M4 block.
2654 * src/symtab.c: Don't access directly to the symbol tag, use
2655 symbol_tag_get.
2656 * src/parse-gram.y: Use symbol_list_free.
2657
56c47203
AD
26582002-06-17 Akim Demaille <akim@epita.fr>
2659
2660 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
2661 (symbol_list_prepend, get_type_name): Move to...
2662 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
2663 (symbol_list_prepend, symbol_list_n_type_name_get): here.
2664 Adjust all callers.
2665 (symbol_list_free): New.
2666 * src/scan-gram.l (handle_dollar): Takes a location.
2667 * tests/input.at (Invalid $n): Adjust.
2668
1e0bab92
AD
26692002-06-17 Akim Demaille <akim@epita.fr>
2670
2671 * src/reader.h, src/reader.c (symbol_list_new): Export it.
2672 (symbol_list_prepend): New.
2673 * src/parse-gram.y (%union): `list' is a new member.
2674 (symbols.1): New, replaces...
2675 (terms_to_prec.1, nterms_to_type.1): these.
2676 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
2677 Take a location as additional argument.
2678 Adjust all callers.
2679
04e60654
AD
26802002-06-15 Akim Demaille <akim@epita.fr>
2681
2682 * src/parse-gram.y: Move %token in the declaration section so that
2683 we don't depend upon CVS Bison.
2684
10e5b8bd
AD
26852002-06-15 Akim Demaille <akim@epita.fr>
2686
2687 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
2688 * src/print.c (print_core): Use it.
2689
9801d40c
AD
26902002-06-15 Akim Demaille <akim@epita.fr>
2691
2692 * src/conflicts.c (log_resolution): Accept the rule involved in
2693 the sr conflicts instead of the lookahead number that points to
2694 that rule.
2695 (flush_reduce): Accept the current lookahead vector as argument,
2696 instead of the index in LA.
2697 (resolve_sr_conflict): Accept the current number of lookahead
2698 bitset to consider for the STATE, instead of the index in LA.
2699 (set_conflicts): Adjust.
2700 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
2701
c0263492
AD
27022002-06-15 Akim Demaille <akim@epita.fr>
2703
2704 * src/state.h (state_t): Replace the `lookaheadsp' member, a
2705 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
2706 Adjust all dependencies.
2707 * src/lalr.c (initialize_lookaheads): Split into...
2708 (states_lookaheads_count, states_lookaheads_initialize): these.
2709 (lalr): Adjust.
2710
9757c359
AD
27112002-06-15 Akim Demaille <akim@epita.fr>
2712
2713 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
2714 out of...
2715 (grammar_rules_print): here.
2716 * src/reduce.c (reduce_output): Use it.
2717 * tests/reduce.at (Useless Rules, Reduced Automaton)
2718 (Underivable Rules): Adjust.
2719
6b98e4b5
AD
27202002-06-15 Akim Demaille <akim@epita.fr>
2721
2722 Copy BYacc's nice way to report the grammar.
2723
2724 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
2725 New.
2726 Don't print the rules' location, it is confusing and useless.
2727 (rule_print): Use grammar_rhs_print.
2728 * src/print.c (print_grammar): Use grammar_rules_print.
2729
6b98e4b5
AD
27302002-06-15 Akim Demaille <akim@epita.fr>
2731
2732 Complete and rationalize `useless thing' warnings.
2733
2734 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
2735 (symbol_tag_print): New.
2736 Use them everywhere in place of accessing directly the tag member.
2737 * src/gram.h, src/gram.c (rule_print): New.
2738 Use it where a rule used to be printed `by hand'.
2739 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
2740 (reduce_grammar_tables): Report the useless rules.
2741 (reduce_print): Useless things are a warning, not an error.
2742 Report it as such.
2743 * tests/reduce.at (Useless Nonterminals, Useless Rules):
2744 (Reduced Automaton, Underivable Rules): Adjust.
2745 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
2746 * tests/conflicts.at (Unresolved SR Conflicts)
2747 (Solved SR Conflicts): Adjust.
2748
ee000ba4
AD
27492002-06-15 Akim Demaille <akim@epita.fr>
2750
2751 Let symbols have a location.
2752
2753 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
2754 (getsym): Adjust.
2755 Adjust all callers.
2756 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
2757 Use location_t, not int.
2758 * src/symtab.c (symbol_check_defined): Take advantage of the
2759 location.
2760 * tests/regression.at (Invalid inputs): Adjust.
2761
8efe435c
AD
27622002-06-15 Akim Demaille <akim@epita.fr>
2763
2764 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
2765 (input): Don't try to initialize yylloc here, do it in the
2766 scanner.
2767 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
2768 * src/gram.h (rule_t): Change line and action_line into location
2769 and action_location, of location_t type.
2770 Adjust all dependencies.
2771 * src/location.h, src/location.c (empty_location): New.
2772 * src/reader.h, src/reader.c (grammar_start_symbol_set)
2773 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
2774 (grammar_current_rule_symbol_append)
2775 (grammar_current_rule_action_append): Expect a location as argument.
2776 * src/reader.c (grammar_midrule_action): Adjust to attach an
2777 action's location as dummy symbol location.
2778 * src/symtab.h, src/symtab.c (startsymbol_location): New.
2779 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
2780 the line numbers.
2781
1921f1d7
AD
27822002-06-14 Akim Demaille <akim@epita.fr>
2783
2784 Grammar declarations may be found in the grammar section.
2785
2786 * src/parse-gram.y (rules_or_grammar_declaration): New.
2787 (declarations): Each declaration may end with a semicolon, not
2788 just...
2789 (grammar_declaration): `"%union"'.
2790 (grammar): Branch to rules_or_grammar_declaration.
2791
4515534c
AD
27922002-06-14 Akim Demaille <akim@epita.fr>
2793
2794 * src/main.c (main): Invoke scanner_free.
2795
f958596b
AD
27962002-06-14 Akim Demaille <akim@epita.fr>
2797
2798 * src/output.c (m4_invoke): Extracted from...
2799 (output_skeleton): here.
2800 Free tempfile.
2801
2c569025
AD
28022002-06-14 Akim Demaille <akim@epita.fr>
2803
2804 * src/parse-gram.y (directives, directive, gram)
2805 (grammar_directives, precedence_directives, precedence_directive):
2806 Rename as...
2807 (declarations, declaration, grammar, grammar_declaration)
2808 (precedence_declaration, precedence_declarator): these.
2809 (symbol_declaration): New.
2810
592e8d4d
AD
28112002-06-14 Akim Demaille <akim@epita.fr>
2812
2813 * src/files.c (action_obstack): Remove, unused.
2814 (output_obstack): Remove it, and all its dependencies, as it is no
2815 longer needed.
2816 * src/reader.c (epilogue_set): Build the epilogue in the
2817 muscle_obstack.
2818 * src/output.h, src/output.c (muscle_obstack): Move to...
2819 * src/muscle_tab.h, src/muscle_tab.h: here.
2820 (muscle_init): Initialize muscle_obstack.
2821 (muscle_free): New.
2822 * src/main.c (main): Call it.
2823
0c15323d
AD
28242002-06-14 Akim Demaille <akim@epita.fr>
2825
2826 * src/location.h: New, extracted from...
2827 * src/reader.h: here.
2828 * src/Makefile.am (noinst_HEADERS): Merge into
2829 (bison_SOURCES): this.
2830 Add location.h.
2831 * src/parse-gram.y: Use location_t instead of Bison's.
2832 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
2833 Use location_t instead of ints.
2834
e96c9728
AD
28352002-06-14 Akim Demaille <akim@epita.fr>
2836
2837 * data/bison.simple, data/bison.c++: Be sure to restore the
2838 current #line when returning to the skeleton contents after having
2839 exposed the input file's #line.
2840
75d1fe16
AD
28412002-06-12 Akim Demaille <akim@epita.fr>
2842
2843 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
2844 eager.
2845 * tests/actions.at (Exotic Dollars): New.
2846
6c35d22c
AD
28472002-06-12 Akim Demaille <akim@epita.fr>
2848
2849 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
2850 ['"/] too eagerly.
2851 * tests/input.at (Torturing the Scanner): New.
2852
1d6412ad
AD
28532002-06-11 Akim Demaille <akim@epita.fr>
2854
2855 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
2856 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
2857 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
2858 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
2859 * src/reader.c (reader): Use it.
2860
4cdb01db
AD
28612002-06-11 Akim Demaille <akim@epita.fr>
2862
2863 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
2864 Adjust all callers.
2865 (scanner_last_string_free): New.
2866
44995b2e
AD
28672002-06-11 Akim Demaille <akim@epita.fr>
2868
2869 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
2870 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
2871 (last_string, YY_OBS_FREE): New.
2872 Use them when returning an ID.
2873
e9955c83
AD
28742002-06-11 Akim Demaille <akim@epita.fr>
2875
2876 Have Bison grammars parsed by a Bison grammar.
2877
2878 * src/reader.c, src/reader.h (prologue_augment): New.
2879 * src/reader.c (copy_definition): Remove.
2880
2881 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
2882 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
2883 (grammar_current_rule_prec_set, grammar_current_rule_check)
2884 (grammar_current_rule_symbol_append)
2885 (grammar_current_rule_action_append): Export.
2886 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
2887 (symbol_list_action_append): Remove.
2888 Hook the routines from reader.
2889 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
2890 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
2891
2892 * src/reader.c (read_declarations): Remove, unused.
2893
2894 * src/parse-gram.y: Handle the epilogue.
2895 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
2896 (grammar_start_symbol_set): this.
2897 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
2898 * src/reader.c (readgram): Remove, unused.
2899 (reader): Adjust to insert eoftoken and axiom where appropriate.
2900
2901 * src/reader.c (copy_dollar): Replace with...
2902 * src/scan-gram.h (handle_dollar): this.
2903 * src/parse-gram.y: Remove `%thong'.
2904
2905 * src/reader.c (copy_at): Replace with...
2906 * src/scan-gram.h (handle_at): this.
2907
2908 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
2909 New.
2910
2911 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
2912 time being.
2913
2914 * src/reader.h, src/reader.c (grammar_rule_end): New.
2915
2916 * src/parse.y (current_type, current_class): New.
2917 Implement `%nterm', `%token' support.
2918 Merge `%term' into `%token'.
2919 (string_as_id): New.
2920 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
2921 type name.
2922
2923 * src/parse-gram.y: Be sure to handle properly the beginning of
2924 rules.
2925
2926 * src/parse-gram.y: Handle %type.
2927 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
2928
2929 * src/parse-gram.y: More directives support.
2930 * src/options.c: No longer handle source directives.
2931
2932 * src/parse-gram.y: Fix %output.
2933
2934 * src/parse-gram.y: Handle %union.
2935 Use the prologue locations.
2936 * src/reader.c (parse_union_decl): Remove.
2937
2938 * src/reader.h, src/reader.c (epilogue_set): New.
2939 * src/parse-gram.y: Use it.
2940
2941 * data/bison.simple, data/bison.c++: b4_stype is now either not
2942 defined, then default to int, or to the contents of %union,
2943 without `union' itself.
2944 Adjust.
2945 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
2946
2947 * src/output.c (actions_output): Don't output braces, as they are
2948 already handled by the scanner.
2949
2950 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
2951 characters to themselves.
2952
2953 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
2954 that the epilogue has a proper #line.
2955
2956 * src/parse-gram.y: Handle precedence/associativity.
2957
2958 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
2959 a terminal.
2960 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
2961 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
2962 at all to define terminals that cannot be emitted.
2963
2964 * src/scan-gram.l: Escape M4 characters.
2965
2966 * src/scan-gram.l: Working properly with escapes in user
2967 strings/characters.
2968
2969 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
2970 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
2971 grammar.
2972 Use more modest sizes, as for the time being the parser does not
2973 release memory, and therefore the process swallows a huge amount
2974 of memory.
2975
2976 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
2977 stricter %token grammar.
2978
2979 * src/symtab.h (associativity): Add `undef_assoc'.
2980 (symbol_precedence_set): Do nothing when passed an undef_assoc.
2981 * src/symtab.c (symbol_check_alias_consistence): Adjust.
2982
2983 * tests/regression.at (Invalid %directive): Remove, as it is now
2984 meaningless.
2985 (Invalid inputs): Adjust to the new error messages.
2986 (Token definitions): The new grammar doesn't allow too many
2987 eccentricities.
2988
2989 * src/lex.h, src/lex.c: Remove.
2990 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
2991 (copy_character, copy_string2, copy_string, copy_identifier)
2992 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
2993 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
2994 (parse_action): Remove.
2995 * po/POTFILES.in: Adjust.
2996
2e047461
AD
29972002-06-11 Akim Demaille <akim@epita.fr>
2998
2999 * src/reader.c (parse_action): Don't store directly into the
3000 rule's action member: return the action as a string.
3001 Don't require `rule_length' as an argument: compute it.
3002 (grammar_current_rule_symbol_append)
3003 (grammar_current_rule_action_append): New, eved out from
3004 (readgram): here.
3005 Remove `action_flag', `rulelength', unused now.
3006
9af3fbce
AD
30072002-06-11 Akim Demaille <akim@epita.fr>
3008
3009 * src/reader.c (grammar_current_rule_prec_set).
3010 (grammar_current_rule_check): New, eved out from...
3011 (readgram): here.
3012 Remove `xaction', `first_rhs': useless.
3013 * tests/input.at (Type clashes): New.
3014 * tests/existing.at (GNU Cim Grammar): Adjust.
3015
1485e106
AD
30162002-06-11 Akim Demaille <akim@epita.fr>
3017
3018 * src/reader.c (grammar_midrule_action): New, Eved out from
3019 (readgram): here.
3020
da4160c3
AD
30212002-06-11 Akim Demaille <akim@epita.fr>
3022
3023 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
3024 New.
3025 (readgram): Use them as replacement of inlined code, crule and
3026 crule1.
3027
f6d0f937
AD
30282002-06-11 Akim Demaille <akim@epita.fr>
3029
3030 * src/reader.c (grammar_end, grammar_symbol_append): New.
3031 (readgram): Use them.
3032 Make the use of `p' as local as possible.
3033
69078d4b
AD
30342002-06-10 Akim Demaille <akim@epita.fr>
3035
3036 GCJ's parser requires the tokens to be defined before the prologue.
3037
3038 * data/bison.simple: Output the token definition before the user's
3039 prologue.
3040 * tests/regression.at (Braces parsing, Duplicate string)
3041 (Mixing %token styles): Check the output from bison.
3042 (Early token definitions): New.
3043
5e424082
AD
30442002-06-10 Akim Demaille <akim@epita.fr>
3045
3046 * src/symtab.c (symbol_user_token_number_set): Don't complain when
3047 assigning twice the same user number to a token, so that we can
3048 use it in...
3049 * src/lex.c (lex): here.
3050 Also use `symbol_class_set' instead of hand written code.
3051 * src/reader.c (parse_assoc_decl): Likewise.
3052
44536b35
AD
30532002-06-10 Akim Demaille <akim@epita.fr>
3054
3055 * src/symtab.c, src/symtab.c (symbol_class_set)
3056 (symbol_user_token_number_set): New.
3057 * src/reader.c (parse_token_decl): Use them.
3058 Use a switch instead of ifs.
3059 Use a single argument.
3060
8b9f2372
AD
30612002-06-10 Akim Demaille <akim@epita.fr>
3062
3063 Remove `%thong' support as it is undocumented, unused, duplicates
3064 `%token's job, and creates useless e-mail traffic with people who
3065 want to know what it is, why it is undocumented, unused, and
3066 duplicates `%token's job.
3067
3068 * src/reader.c (parse_thong_decl): Remove.
3069 * src/options.c (option_table): Remove "thong".
3070 * src/lex.h (tok_thong): Remove.
3071
3ae2b51f
AD
30722002-06-10 Akim Demaille <akim@epita.fr>
3073
3074 * src/symtab.c, src/symtab.c (symbol_type_set)
3075 (symbol_precedence_set): New.
3076 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
3077 (value_components_used): Remove, unused.
3078
2f1afb73
AD
30792002-06-09 Akim Demaille <akim@epita.fr>
3080
3081 Move symbols handling code out of the reader.
3082
3083 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
3084 (axiom): Move to...
3085 * src/symtab.h, src/symtab.c: here.
3086
3087 * src/gram.c (start_symbol): Remove: use startsymbol->number.
3088 * src/reader.c (startval): Rename as...
3089 * src/symtab.h, src/symtab.c (startsymbol): this.
3090 * src/reader.c: Adjust.
3091
3092 * src/reader.c (symbol_check_defined, symbol_make_alias)
3093 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
3094 (token_translations_init)
3095 Move to...
3096 * src/symtab.c: here.
3097 * src/reader.c (packsymbols): Move to...
3098 * src/symtab.h, src/symtab.c (symbols_pack): here.
3099 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
3100 argument.
3101
e9bca3ad
AD
31022002-06-03 Akim Demaille <akim@epita.fr>
3103
3104 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
3105 then statements.
3106
86eff183
AD
31072002-06-03 Akim Demaille <akim@epita.fr>
3108
3109 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
3110 structs with non literals.
3111 * src/scan-skel.l: never-interactive.
3112 * src/conflicts.c (enum conflict_resolution_e): No trailing
3113 comma.
3114 * src/getargs.c (usage): Split long literal strings.
3115 Reported by Hans Aberg.
3116
717be197
AD
31172002-05-28 Akim Demaille <akim@epita.fr>
3118
3119 * data/bison.c++: Use C++ ostreams.
3120 (cdebug_): New member.
3121
670ddffd
AD
31222002-05-28 Akim Demaille <akim@epita.fr>
3123
3124 * src/output.c (output_skeleton): Be sure to allocate enough room
3125 for `/' _and_ for `\0' in full_skeleton.
3126
769b430f
AD
31272002-05-28 Akim Demaille <akim@epita.fr>
3128
3129 * data/bison.c++: Catch up with bison.simple:
3130 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3131 and Paul Eggert <eggert@twinsun.com>: `error' handing.
3132 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
3133 and popping traces.
3134
7067cb36
PH
31352002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3136
3137 * src/output.c (output_skeleton): Put an explicit path in front of
3138 the skeleton file name, rather than relying on the -I directory,
3139 to partially alleviate effects of having a skeleton file lying around
3140 in the current directory.
769b430f 3141
4a713ec2
PH
31422002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3143
769b430f 3144 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
3145 obstack_printf should be obstack_fgrow1.
3146
b408954b
AD
31472002-05-26 Akim Demaille <akim@epita.fr>
3148
3149 * src/state.h (state_t): `solved_conflicts' is a new member.
3150 * src/LR0.c (new_state): Set it to 0.
3151 * src/conflicts.h, src/conflicts.c (print_conflicts)
3152 (free_conflicts, solve_conflicts): Rename as...
3153 (conflicts_print, conflicts_free, conflicts_solve): these.
3154 Adjust callers.
3155 * src/conflicts.c (enum conflict_resolution_e)
3156 (solved_conflicts_obstack): New, used by...
3157 (log_resolution): this.
3158 Adjust to attach the conflict resolution to each state.
3159 Complete the description with the precedence/associativity
3160 information.
3161 (resolve_sr_conflict): Adjust.
3162 * src/print.c (print_state): Output its solved_conflicts.
3163 * tests/conflicts.at (Unresolved SR Conflicts)
3164 (Solved SR Conflicts): Exercise --report=all.
3165
a49aecd5
AD
31662002-05-26 Akim Demaille <akim@epita.fr>
3167
3168 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
3169 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
3170 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
3171 (token_number_t, item_number_as_token_number)
3172 (token_number_as_item_number, muscle_insert_token_number_table):
3173 Rename as...
3174 (symbol_number_t, item_number_as_symbol_number)
3175 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
3176 these, since it is more appropriate.
3177
5504898e
AD
31782002-05-26 Akim Demaille <akim@epita.fr>
3179
3180 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
3181 `Error:' lines.
3182 * data/bison.simple (yystos) [YYDEBUG]: New.
3183 (yyparse) [YYDEBUG]: Display the symbols which are popped during
3184 error recovery.
3185 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
3186
ec3bc396
AD
31872002-05-25 Akim Demaille <akim@epita.fr>
3188
3189 * doc/bison.texinfo (Debugging): Split into...
3190 (Tracing): this new section, its former contents, and...
3191 (Understanding): this new section.
3192 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
3193 by...
3194 (report_flag): this.
3195 Adjust all dependencies.
3196 (report_args, report_types, report_argmatch): New.
3197 (usage, getargs): Report/support -r, --report.
3198 * src/options.h
3199 (struct option_table_struct): Rename as..,
3200 (struct option_table_s): this.
3201 Rename the `set_flag' member to `flag' to match with getopt_long's
3202 struct.
3203 * src/options.c (option_table): Split verbose into an entry for
3204 %verbose, and another for --verbose.
3205 Support --report/-r, so remove -r from the obsolete --raw.
3206 * src/print.c: Attach full item sets and lookaheads reports to
3207 report_flag instead of trace_flag.
3208 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
3209
78df8250
PE
32102002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3211 and Paul Eggert <eggert@twinsun.com>
769b430f 3212
78df8250
PE
3213 * data/bison.simple (yyparse): Correct error handling to conform to
3214 POSIX and yacc. Specifically, after syntax error is discovered,
3215 do not reduce further before shifting the error token.
3216 Clean up the code a bit by removing the labels yyerrdefault,
3217 yyerrhandle, yyerrpop.
3218 * NEWS: Document the above.
3219
c0c9ea05
PH
32202002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3221
3222 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
3223 type; it isn't always big enough, since it doesn't necessarily
3224 include non-terminals.
769b430f 3225 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
3226 the latter can be removed.
3227 (yy_token_number_type): Remove, only one use.
3228 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
3229 don't use TokenNumberType as element type.
769b430f 3230
c0c9ea05
PH
3231 * tests/regression.at: Modify expected output to agree with change
3232 to yyr1 and yytranslate.
769b430f 3233
6390a83f
FK
32342002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
3235
3236 * src/reader.c (parse_action): Use copy_character instead of
3237 obstack_1grow.
3238
db7c8e9a
AD
32392002-05-13 Akim Demaille <akim@epita.fr>
3240
3241 * tests/regression.at (Token definitions): Prototype yylex and
3242 yyerror.
3243
fcc61800
PH
32442002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3245
158c687b 3246 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
3247 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
3248 32-bit arithmetic.
3249 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
3250
5683e9b2
AD
32512002-05-07 Akim Demaille <akim@epita.fr>
3252
3253 * tests/synclines.at: Be sure to prototype yylex and yyerror to
3254 avoid GCC warnings.
3255
0c2d3f4c
AD
32562002-05-07 Akim Demaille <akim@epita.fr>
3257
3258 Kill GCC warnings.
3259
3260 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
3261 over the RHS of each rule.
3262 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
3263 * src/state.h (state_t): Member `nitems' is unsigned short.
3264 * src/LR0.c (get_state): Adjust.
3265 * src/reader.c (packgram): Likewise.
3266 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
3267 `Type'.
3268 (muscle_insert_int_table): Remove, unused.
3269 (prepare_rules): Remove `max'.
3270
1565b720
AD
32712002-05-06 Akim Demaille <akim@epita.fr>
3272
3273 * src/closure.c (print_firsts): Display of the symbol tags.
3274 (bitmatrix_print): Move to...
3275 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
3276 here.
3277 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
3278
cfaee611
AD
32792002-05-06 Akim Demaille <akim@epita.fr>
3280
3281 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
3282 hash_do_for_each.
3283
458be8e0
AD
32842002-05-06 Akim Demaille <akim@epita.fr>
3285
3286 * src/LR0.c (new_state, get_state): Instead of using the global
3287 `kernel_size' and `kernel_base', have two new arguments:
3288 `core_size' and `core'.
3289 Adjust callers.
3290
a900a624
AD
32912002-05-06 Akim Demaille <akim@epita.fr>
3292
3293 * src/reader.c (packgram): No longer end `ritem' with a 0
3294 sentinel: it is not used.
3295
d4e7d3a1
AD
32962002-05-05 Akim Demaille <akim@epita.fr>
3297
3298 New experimental feature: display the lookaheads in the report and
3299 graph.
3300
3301 * src/print (print_core): When --trace-flag, display the rules
3302 lookaheads.
3303 * src/print_graph.c (print_core): Likewise.
3304 Swap the arguments.
3305 Adjust caller.
3306
39ceb25b
AD
33072002-05-05 Akim Demaille <akim@epita.fr>
3308
3309 * tests/torture.at (Many lookaheads): New test.
3310
5372019f
AD
33112002-05-05 Akim Demaille <akim@epita.fr>
3312
3313 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
3314 (GENERATE_MUSCLE_INSERT_TABLE): this.
3315 (output_int_table, output_unsigned_int_table, output_short_table)
3316 (output_token_number_table, output_item_number_table): Replace with...
3317 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
3318 (muscle_insert_short_table, muscle_insert_token_number_table)
3319 (muscle_insert_item_number_table): these.
3320 Adjust all callers.
3321 (prepare_tokens): Don't free `translations', since...
3322 * src/reader.h, src/reader.c (grammar_free): do it.
3323 Move to...
3324 * src/gram.h, src/gram.c (grammar_free): here.
3325 * data/bison.simple, data/bison.c++: b4_token_number_max is now
3326 b4_translate_max.
3327
5df5f6d5
AD
33282002-05-05 Akim Demaille <akim@epita.fr>
3329
3330 * src/output.c (output_unsigned_int_table): New.
3331 (prepare_rules): `i' is unsigned.
3332 `prhs', `rline', `r2' are unsigned int.
3333 Rename muscle `rhs_number_max' as `rhs_max'.
3334 Output muscles `prhs_max', `rline_max', and `r2_max'.
3335 Free rline and r1.
3336 * data/bison.simple, data/bison.c++: Adjust to use these muscles
3337 to compute types instead of constant types.
3338 * tests/regression.at (Web2c Actions): Adjust.
3339
b87f8b21
AD
33402002-05-04 Akim Demaille <akim@epita.fr>
3341
3342 * src/symtab.h (SALIAS, SUNDEF): Rename as...
3343 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
3344 Adjust dependencies.
3345 * src/output.c (token_definitions_output): Be sure not to output a
3346 `#define 'a'' when fed with `%token 'a' "a"'.
3347 * tests/regression.at (Token definitions): New.
3348
8bb936e4
PE
33492002-05-03 Paul Eggert <eggert@twinsun.com>
3350
3351 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
3352 for K&R C.
3353
33542002-05-03 gettextize <bug-gnu-gettext@gnu.org>
3355
3356 * Makefile.am (SUBDIRS): Remove intl.
3357 (EXTRA_DIST): Add config/config.rpath.
3358
53c71a12
AD
33592002-05-03 Akim Demaille <akim@epita.fr>
3360
3361 * data/bison.simple (m4_if): Don't output empty enums.
3362 And actually, output valid enum definitions :(.
3363
289dd0cf
AD
33642002-05-03 Akim Demaille <akim@epita.fr>
3365
3366 * configure.bat: Remove, completely obsolete.
3367 * Makefile.am (EXTRA_DIST): Adjust.
3368 Don't distribute config.rpath...
3369 * config/Makefile.am (EXTRA_DIST): Do it.
3370
db85e524
AD
33712002-05-03 Akim Demaille <akim@epita.fr>
3372
3373 * configure.in (GETTEXT_VERSION): New.
3374 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
3375
83ccf991
AD
33762002-05-03 Akim Demaille <akim@epita.fr>
3377
3378 * data/bison.simple (b4_token_enum): New.
3379 (b4_token_defines): Use it to output tokens both as #define and
3380 enums.
3381 Suggested by Paul Eggert.
3382 * src/output.c (token_definitions_output): Don't output spurious
3383 white spaces.
3384
1f418995
AD
33852002-05-03 Akim Demaille <akim@epita.fr>
3386
3387 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
3388
45119f04
RA
33892002-05-02 Robert Anisko <robert@lrde.epita.fr>
3390
3391 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
3392 Update the stack class, give a try to deque as the default container.
3393
b2d52318
AD
33942002-05-02 Akim Demaille <akim@epita.fr>
3395
3396 * data/bison.simple (yyparse): Do not implement @$ = @1.
3397 (YYLLOC_DEFAULT): Adjust to do it.
3398 * doc/bison.texinfo (Location Default Action): Fix.
3399
3a8b4109
AD
34002002-05-02 Akim Demaille <akim@epita.fr>
3401
3402 * src/reader.c (parse_braces): Merge into...
3403 (parse_action): this.
3404
84614e13
AD
34052002-05-02 Akim Demaille <akim@epita.fr>
3406
3407 * configure.in (ALL_LINGUAS): Remove.
3408 * po/LINGUAS, hr.po: New.
3409
fdbcd8e2
AD
34102002-05-02 Akim Demaille <akim@epita.fr>
3411
3412 Remove the so called hairy (semantic) parsers.
3413
3414 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
3415 * src/gram.h, src/gram.c (semantic_parser): Remove.
3416 (rule_t): Remove the guard and guard_line members.
3417 * src/lex.h (token_t): remove tok_guard.
3418 * src/options.c (option_table): Remove %guard and %semantic_parser
3419 support.
3420 * src/output.c, src/output.h (guards_output): Remove.
3421 (prepare): Adjust.
3422 (token_definitions_output): Don't output the `T'
3423 tokens (???).
3424 (output_skeleton): Don't output the guards.
3425 * src/files.c, src/files.c (attrsfile): Remove.
3426 * src/reader.c (symbol_list): Remove the guard and guard_line
3427 members.
3428 Adjust dependencies.
3429 (parse_guard): Remove.
3430 * data/bison.hairy: Remove.
3431 * doc/bison.texinfo (Environment Variables): Remove occurrences of
3432 BISON_HAIRY.
3433
82b6cb3f
AD
34342002-05-02 Akim Demaille <akim@epita.fr>
3435
3436 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
3437 (parse_guard): Rename the formal argument `stack_offset' as
3438 `rule_length', which is more readable.
3439 Adjust callers.
3440 (copy_at, copy_dollar): Instead of outputting the hard coded
3441 values of $$, $n and so forth, output invocation to b4_lhs_value,
3442 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
3443 Note: this patch partially drops `semantic-parser' support: it
3444 always does `rule_length - n', where semantic parsers ought to
3445 always use `-n'.
82b6cb3f
AD
3446 * data/bison.simple, data/bison.c++ (b4_lhs_value)
3447 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
3448
6cbfbcc5
AD
34492002-05-02 Akim Demaille <akim@epita.fr>
3450
3451 * configure.in (AC_INIT): Bump to 1.49b.
3452 (AM_INIT_AUTOMAKE): Short invocation.
3453
b8548114
AD
34542002-05-02 Akim Demaille <akim@epita.fr>
3455
3456 Version 1.49a.
3457
c20cd1fa
AD
34582002-05-01 Akim Demaille <akim@epita.fr>
3459
3460 * src/skeleton.h: Remove.
3461
8a9566d4
AD
34622002-05-01 Akim Demaille <akim@epita.fr>
3463
3464 * src/skeleton.h: Fix the #endif.
3465 Reported by Magnus Fromreide.
3466
8c6d399a
PE
34672002-04-26 Paul Eggert <eggert@twinsun.com>
3468
3469 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
3470 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 3471 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 3472
2b7ed18a
RA
34732002-04-25 Robert Anisko <robert@lrde.epita.fr>
3474
3475 * src/scan-skel.l: Postprocess quadrigraphs.
3476
3477 * src/reader.c (copy_character): New function, used to output
3478 single characters while replacing `[' and `]' with quadrigraphs, to
3479 avoid troubles with M4 quotes.
3480 (copy_comment): Output characters with copy_character.
3481 (read_additionnal_code): Likewise.
3482 (copy_string2): Likewise.
3483 (copy_definition): Likewise.
3484
3485 * tests/calc.at: Exercise M4 quoting.
3486
34a89c50
AD
34872002-04-25 Akim Demaille <akim@epita.fr>
3488
3489 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
3490 between `!' and the command.
3491 Reported by Paul Eggert.
3492
0dd1580a
RA
34932002-04-24 Robert Anisko <robert@lrde.epita.fr>
3494
3495 * tests/calc.at: Exercise prologue splitting.
3496
3497 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
3498 `b4_post_prologue' instead of `b4_prologue'.
3499
3500 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
3501 muscles.
3502 (output): Free pre_prologue_obstack and post_prologue_obstack.
3503 * src/files.h, src/files.c (attrs_obstack): Remove.
3504 (pre_prologue_obstack, post_prologue_obstack): New.
3505 * src/reader.c (copy_definition): Add a parameter to specify the
3506 obstack to fill, instead of using attrs_obstack unconditionally.
3507 (read_declarations): Pass pre_prologue_obstack to copy_definition if
3508 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
3509
83c1796f
PE
35102002-04-23 Paul Eggert <eggert@twinsun.com>
3511
3512 * data/bison.simple: Remove unnecessary commentary and white
3513 space differences from 1_29-branch.
3514 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
3515
3516 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
3517 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
3518 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
3519 constructors or destructors.
3520
3521 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
3522
1207eeac
AD
35232002-04-23 Akim Demaille <akim@epita.fr>
3524
3525 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
3526 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
3527 location with columns.
3528 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
3529 All reported by Paul Eggert.
3530
78ab8f67
AD
35312002-04-22 Akim Demaille <akim@epita.fr>
3532
3533 * src/reduce.c (dump_grammar): Move to...
3534 * src/gram.h, src/gram.c (grammar_dump): here.
3535 Be sure to separate long item numbers.
3536 Don't read the members of a rule's prec if its nil.
3537
133c20e2
AD
35382002-04-22 Akim Demaille <akim@epita.fr>
3539
3540 * src/output.c (table_size, table_grow): New.
3541 (MAXTABLE): Remove, replace uses with table_size.
3542 (pack_vector): Instead of dying when the table is too big, grow it.
3543
9515e8a7
AD
35442002-04-22 Akim Demaille <akim@epita.fr>
3545
3546 * data/bison.simple (yyr1): Its type is that of a token number.
3547 * data/bison.c++ (r1_): Likewise.
3548 * tests/regression.at (Web2c Actions): Adjust.
3549
23c5a174
AD
35502002-04-22 Akim Demaille <akim@epita.fr>
3551
3552 * src/reader.c (token_translations_init): 256 is now the default
3553 value for the error token, i.e., it will be assigned another
3554 number if the user assigned 256 to one of her tokens.
3555 (reader): Don't force 256 to error.
3556 * doc/bison.texinfo (Symbols): Adjust.
3557 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
3558 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
3559 etc. instead of 10, 20, 30 (which was used to `jump' over error
3560 (256) and undefined (2)).
3561
5fbb0954
AD
35622002-04-22 Akim Demaille <akim@epita.fr>
3563
3564 Propagate more token_number_t.
3565
3566 * src/gram.h (token_number_as_item_number)
3567 (item_number_as_token_number): New.
3568 * src/output.c (GENERATE_OUTPUT_TABLE): New.
3569 Use it to create output_item_number_table and
3570 output_token_number_table.
3571 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
3572 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
3573 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
3574 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
3575
4f940944
AD
35762002-04-22 Akim Demaille <akim@epita.fr>
3577
3578 * src/output.h, src/output.c (get_lines_number): Remove.
3579
3ded9a63
AD
35802002-04-19 Akim Demaille <akim@epita.fr>
3581
3582 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
3583 as Lex/Flex'.
3584 (Debugging): More details about enabling the debugging features.
3585 (Table of Symbols): Describe $$, $n, @$, and @n.
3586 Suggested by Tim Josling.
3587
e0c471a9
AD
35882002-04-19 Akim Demaille <akim@epita.fr>
3589
3590 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
3591
fecc10cd
AD
35922002-04-10 Akim Demaille <akim@epita.fr>
3593
3594 * src/system.h: Rely on HAVE_LIMITS_H.
3595 Suggested by Paul Eggert.
3596
51dec47b
AD
35972002-04-09 Akim Demaille <akim@epita.fr>
3598
3599 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
3600 full stderr, and strip it according to the bison options, instead
3601 of composing the error message from different bits.
3602 This makes it easier to check for several error messages.
3603 Adjust all the invocations.
3604 Add an invocation exercising the error token.
3605 Add an invocation demonstrating a stupid error message.
3606 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
3607 Adjust the tests.
3608 Error message are for stderr, not stdout.
3609
007a50a4
AD
36102002-04-09 Akim Demaille <akim@epita.fr>
3611
3612 * src/gram.h, src/gram.c (error_token_number): Remove, use
3613 errtoken->number.
3614 * src/reader.c (reader): Don't specify the user token number (2)
3615 for $undefined, as it uselessly prevents using it.
3616 * src/gram.h (token_number_t): Move to...
3617 * src/symtab.h: here.
3618 (state_t.number): Is a token_number_t.
3619 * src/print.c, src/reader.c: Use undeftoken->number instead of
3620 hard coded 2.
3621 (Even though this 2 is not the same as above: the number of the
3622 undeftoken remains being 2, it is its user token number which
3623 might not be 2).
3624 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
3625 `user_token_number_max'.
3626 Output `undef_token_number'.
3627 * data/bison.simple, data/bison.c++: Use them.
3628 Be sure to map invalid yylex return values to
3629 `undef_token_number'. This saves us from gratuitous SEGV.
3630
3631 * tests/conflicts.at (Solved SR Conflicts)
3632 (Unresolved SR Conflicts): Adjust.
3633 * tests/regression.at (Web2c Actions): Adjust.
3634
06446ccf
AD
36352002-04-08 Akim Demaille <akim@epita.fr>
3636
3637 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
3638 Adding #line.
3639 Remove the duplicate `typedefs'.
3640 (RhsNumberType): Fix the declaration and various other typos.
3641 Use __ofile__.
3642 * data/bison.simple: Use __ofile__.
3643 * src/scan-skel.l: Handle __ofile__.
3644
62a3e4f0
AD
36452002-04-08 Akim Demaille <akim@epita.fr>
3646
3647 * src/gram.h (item_number_t): New, the type of item numbers in
3648 RITEM. Note that it must be able to code symbol numbers as
3649 positive number, and the negation of rule numbers as negative
3650 numbers.
3651 Adjust all dependencies (pretty many).
3652 * src/reduce.c (rule): Remove this `short *' pointer: use
3653 item_number_t.
3654 * src/system.h (MINSHORT, MAXSHORT): Remove.
3655 Include `limits.h'.
3656 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
3657 (shortcpy): Remove.
3658 (MAXTABLE): Move to...
3659 * src/output.c (MAXTABLE): here.
3660 (prepare_rules): Use output_int_table to output rhs.
3661 * data/bison.simple, data/bison.c++: Adjust.
3662 * tests/torture.at (Big triangle): Move the limit from 254 to
3663 500.
3664 * tests/regression.at (Web2c Actions): Ajust.
3665
3666 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
3667 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
3668 passes, but produces negative #line number, once fixed, GCC is
3669 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
3670 C), it passes.
3671 * src/state.h (state_h): Code input lines on ints, not shorts.
3672
bb88b0fc
AD
36732002-04-08 Akim Demaille <akim@epita.fr>
3674
3675 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
3676 and then the grammar.
3677
9a636f47
AD
36782002-04-08 Akim Demaille <akim@epita.fr>
3679
3680 * src/system.h: No longer using strndup.
3681
680e8701
AD
36822002-04-07 Akim Demaille <akim@epita.fr>
3683
3684 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
3685 * src/output.c (output_table_data): Return the longest number.
3686 (prepare_tokens): Output `token_number_max').
3687 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
3688 New.
3689 Use them to define yy_token_number_type/TokenNumberType.
3690 Use this type for yytranslate.
3691 * tests/torture.at (Big triangle): Push the limit from 124 to
3692 253.
3693 * tests/regression.at (Web2c Actions): Adjust.
3694
817e9f41
AD
36952002-04-07 Akim Demaille <akim@epita.fr>
3696
3697 * tests/torture.at (Big triangle): New.
3698 (GNU AWK Grammar, GNU Cim Grammar): Move to...
3699 * tests/existing.at: here.
3700
5123689b
AD
37012002-04-07 Akim Demaille <akim@epita.fr>
3702
3703 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
3704 nritems.
3705 Adjust dependencies.
3706
f3849179
AD
37072002-04-07 Akim Demaille <akim@epita.fr>
3708
3709 * src/reader.c: Normalize increments to prefix form.
3710
bd02036a
AD
37112002-04-07 Akim Demaille <akim@epita.fr>
3712
3713 * src/reader.c, symtab.c: Remove debugging code.
3714
db8837cb
AD
37152002-04-07 Akim Demaille <akim@epita.fr>
3716
3717 Rename all the `bucket's as `symbol_t'.
3718
3719 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
3720 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
3721 * src/symtab.c, src/symtab.h (bucket): Rename as...
3722 (symbol_t): this.
3723 (symbol_list_new, bucket_check_defined, bucket_make_alias)
3724 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
3725 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
3726 (buckets_new, buckets_free, buckets_do): Rename as...
3727 (symbol_list_new, symbol_check_defined, symbol_make_alias)
3728 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
3729 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
3730 (symbols_new, symbols_free, symbols_do): these.
3731
72a23c97
AD
37322002-04-07 Akim Demaille <akim@epita.fr>
3733
3734 Use lib/hash for the symbol table.
3735
3736 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
3737 EOF.
3738 * src/lex.c (lex): Set the `number' member of new terminals.
3739 * src/reader.c (bucket_check_defined, bucket_make_alias)
3740 (bucket_check_alias_consistence, bucket_translation): New.
3741 (reader, grammar_free, readgram, token_translations_init)
3742 (packsymbols): Adjust.
3743 (reader): Number the predefined tokens.
3744 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
3745 for predefined tokens.
3746 * src/symtab.h (bucket): Remove all the hash table related
3747 members.
3748 * src/symtab.c (symtab): Replace by...
3749 (bucket_table): this.
3750 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
3751 (buckets_new, buckets_do): New.
3752
280a38c3
AD
37532002-04-07 Akim Demaille <akim@epita.fr>
3754
3755 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
3756 (start_symbol, max_user_token_number, semantic_parser)
3757 (error_token_number): Initialize.
3758 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
3759 Initialize.
3760 (reader): Don't.
3761 (errtoken, eoftoken, undeftoken, axiom): Extern.
3762
03b31c0c
AD
37632002-04-07 Akim Demaille <akim@epita.fr>
3764
3765 * src/gram.h (rule_s): prec and precsym are now pointers
3766 to the bucket giving the priority/associativity.
3767 Member `associativity' removed: useless.
3768 * src/reduce.c, src/conflicts.c: Adjust.
3769
8b3df748
AD
37702002-04-07 Akim Demaille <akim@epita.fr>
3771
3772 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
3773 Properly escape the symbols' TAG when outputting them.
3774
e601aa1d
AD
37752002-04-07 Akim Demaille <akim@epita.fr>
3776
3777 * src/lalr.h (LA): Is a bitsetv, not bitset*.
3778
b0299a2e
AD
37792002-04-07 Akim Demaille <akim@epita.fr>
3780
3781 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
3782 (LArule): this, which is an array to rule_t*.
3783 * src/print.c, src/conflicts.c: Adjust.
3784
d7e1f00c
AD
37852002-04-07 Akim Demaille <akim@epita.fr>
3786
3787 * src/gram.h (rule_t): Rename `number' as `user_number'.
3788 `number' is a new member.
3789 Adjust dependencies.
3790 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
3791
cc9305dd
AD
37922002-04-07 Akim Demaille <akim@epita.fr>
3793
3794 As a result of the previous patch, it is no longer needed
3795 to reorder ritem itself.
3796
3797 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
3798
b0940840
AD
37992002-04-07 Akim Demaille <akim@epita.fr>
3800
3801 Be sure never to walk through RITEMS, but use only data related to
3802 the rules themselves. RITEMS should be banished.
3803
3804 * src/output.c (output_token_translations): Rename as...
3805 (prepare_tokens): this.
3806 In addition to `translate', prepare the muscles `tname' and
3807 `toknum', which were handled by...
3808 (output_rule_data): this.
3809 Remove, and move the remainder of its outputs into...
3810 (prepare_rules): this new routines, which also merges content from
3811 (output_gram): this.
3812 (prepare_rules): Be sure never to walk through RITEMS.
3813 (output_stos): Rename as...
3814 (prepare_stos): this.
3815 (output): Always invoke prepare_states, after all, just don't use it
3816 in the output if you don't need it.
3817
643a5994
AD
38182002-04-07 Akim Demaille <akim@epita.fr>
3819
3820 * src/LR0.c (new_state): Display `nstates' as the name of the
3821 newly created state.
3822 Adjust to initialize first_state and last_state if needed.
3823 Be sure to distinguish the initial from the final state.
3824 (new_states): Create the itemset of the initial state, and use
3825 new_state.
3826 * src/closure.c (closure): Now that the initial state has its
3827 items properly set, there is no need for a special case when
3828 creating `ruleset'.
3829
3830 As a result, now the rule 0, reducing to $axiom, is visible in the
3831 outputs. Adjust the test suite.
3832
3833 * tests/conflicts.at (Solved SR Conflicts)
3834 (Unresolved SR Conflicts): Adjust.
3835 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
3836 * tests/conflicts.at (S/R in initial): New.
3837
b4c4ccc2
AD
38382002-04-07 Akim Demaille <akim@epita.fr>
3839
3840 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
3841 the RHS of the rules.
3842 * src/output.c (output_gram): Likewise.
3843
bba97eb2
AD
38442002-04-07 Akim Demaille <akim@epita.fr>
3845
3846 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
3847 bucket.
3848 Adjust all dependencies.
3849 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
3850 `number' of the buckets too.
3851 * src/gram.h: Include `symtab.h'.
3852 (associativity): Move to...
3853 * src/symtab.h: here.
3854 No longer include `gram.h'.
3855
c3b407f4
AD
38562002-04-07 Akim Demaille <akim@epita.fr>
3857
3858 * src/gram.h, src/gram.c (rules_rhs_length): New.
3859 (ritem_longest_rhs): Use it.
3860 * src/gram.h (rule_t): `number' is a new member.
3861 * src/reader.c (packgram): Set it.
3862 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
3863 the end of `rules', and count them out of `nrules'.
3864 (reduce_output, dump_grammar): Adjust.
3865 * src/print.c (print_grammar): It is no longer needed to check for
3866 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
3867 * tests/reduce.at (Reduced Automaton): New test.
3868
11652ab3
AD
38692002-04-07 Akim Demaille <akim@epita.fr>
3870
3871 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
3872 lacking `+ 1' to nrules, Bison reported as useless a token if it
3873 was used solely to set the precedence of the last rule...
3874
26b23c1a
AD
38752002-04-07 Akim Demaille <akim@epita.fr>
3876
3877 * data/bison.c++, data/bison.simple: Don't output the current file
3878 name in #line, to avoid useless diffs between two identical
3879 outputs under different names.
3880
18bcecb0
AD
38812002-04-07 Akim Demaille <akim@epita.fr>
3882
3883 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
3884 Normalize loops to using `< nrules + 1', not `<= nrules'.
3885
fa770c86
AD
38862002-04-07 Akim Demaille <akim@epita.fr>
3887
3888 * TODO: Update.
3889
d9b739c3
AD
38902002-04-07 Akim Demaille <akim@epita.fr>
3891
3892 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
3893 bucket.value as bucket.number.
3894
99013900
AD
38952002-04-07 Akim Demaille <akim@epita.fr>
3896
3897 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
3898 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
3899 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
3900 RHS, instead of being an index in RITEMS.
3901
e966383b
PE
39022002-04-04 Paul Eggert <eggert@twinsun.com>
3903
3904 * doc/bison.texinfo: Update copyright date.
3905 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
3906 (Symbols): Warn about running Bison in one character set,
3907 but compiling and/or running in an incompatible one.
3908 Warn about character code 256, too.
3909
39102002-04-03 Paul Eggert <eggert@twinsun.com>
3911
3912 * src/bison.data (YYSTACK_ALLOC): Depend on whether
3913 YYERROR_VERBOSE is nonzero, not whether it is defined.
3914
3915 Merge changes from bison-1_29-branch.
c307773e 3916
8d6c48b9
PE
39172002-03-20 Paul Eggert <eggert@twinsun.com>
3918
3919 Merge fixes from Debian bison_1.34-1.diff.
3920
3921 * configure.in (AC_PREREQ): 2.53.
3922
e53c6322
AD
39232002-03-20 Akim Demaille <akim@epita.fr>
3924
3925 * src/conflicts.c (log_resolution): Argument `resolution' is const.
3926
9ffbeca7
PE
39272002-03-19 Paul Eggert <eggert@twinsun.com>
3928
21db0b2a
PE
3929 * src/bison.simple (YYCOPY): New macro.
3930 (YYSTACK_RELOCATE): Use it.
3931 Remove Type arg; no longer needed. All callers changed.
3932 (yymemcpy): Remove; no longer needed.
3933
9ffbeca7
PE
3934 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
3935 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3936
642cb8f8
AD
39372002-03-19 Akim Demaille <akim@epita.fr>
3938
3939 Test and fix the #line outputs.
3940
3941 * tests/atlocal.at (GCC): New.
3942 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
3943 (Prologue synch line, ,%union synch line, Postprologue synch line)
3944 (Action synch line, Epilogue synch line): New tests.
3945 * src/reader.c (parse_union_decl): Define the muscle stype_line.
3946 * data/bison.simple, data/bison.c++: Use it.
3947
3c31a486
AD
39482002-03-19 Akim Demaille <akim@epita.fr>
3949
3950 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
3951 (Solved SR Conflicts, %expect not enough, %expect right)
3952 (%expect too much): Move to...
3953 * tests/conflicts.at: this new file.
3954
0d8bed56
AD
39552002-03-19 Akim Demaille <akim@epita.fr>
3956
3957 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
3958 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
3959 that we can move to enums for instance.
3960 * src/output.c (token_definitions_output): Output a list of
3961 `token-name, token-number' instead of the #define.
3962 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
3963
9208d17f
AD
39642002-03-14 Akim Demaille <akim@epita.fr>
3965
3966 Use Gettext 0.11.1.
3967
af27eacb
RA
39682002-03-09 Robert Anisko <robert@lrde.epita.fr>
3969
3970 * data/bison.c++: Make the user able to add members to the generated
3971 parser by subclassing.
3972
9101a310
RA
39732002-03-05 Robert Anisko <robert@lrde.epita.fr>
3974
3975 * src/reader.c (read_additionnal_code): `c' should be an integer, not
3976 a character.
3977 Reported by Nicolas Tisserand and Nicolas Burrus.
3978
fff9bf0b
RA
39792002-03-04 Robert Anisko <robert@lrde.epita.fr>
3980
3981 * src/reader.c: Warn about lacking semi-colons, do not complain.
3982
64dba31e
RA
39832002-03-04 Robert Anisko <robert@lrde.epita.fr>
3984
3985 * data/bison.c++: Remove a debug line.
3986
374f5a14
RA
39872002-03-04 Robert Anisko <robert@lrde.epita.fr>
3988
3989 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
3990 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
3991 provide a default implementation.
3992
bfcf1f3a
AD
39932002-03-04 Akim Demaille <akim@epita.fr>
3994
3995 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
3996 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
3997 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
3998 * tests/semantic.at (Parsing Guards): Similarly.
3999 * src/reader.at (readgram): Complain if the last rule is not ended
4000 with a semi-colon.
4001
65ccf9fc
AD
40022002-03-04 Akim Demaille <akim@epita.fr>
4003
4004 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
4005 * src/closure.c: here.
4006 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
4007 RTC.
4008 * src/warshall.h, src/warshall.c: Remove.
4009 * tests/sets.at (Broken Closure): Adjust.
4010
d0039cbc
AD
40112002-03-04 Akim Demaille <akim@epita.fr>
4012
4013 * src/output.c (output_skeleton): tempdir is const.
4014 bytes_read is unused.
4015
345cea78
AD
40162002-03-04 Akim Demaille <akim@epita.fr>
4017
4018 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
4019 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
4020 Update.
4021 From Michael Hayes.
4022
564801f7
AD
40232002-03-04 Akim Demaille <akim@epita.fr>
4024
4025 * src/closure.c (closure): `r' is unused.
4026
e5352bc7
AD
40272002-03-04 Akim Demaille <akim@epita.fr>
4028
4029 * tests/sets.at (Broken Closure): Add the ending `;'.
4030 * src/reader.at (readgram): Complain if a rule is not ended with a
4031 semi-colon.
4032
914feea9
AD
40332002-03-04 Akim Demaille <akim@epita.fr>
4034
4035 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
4036 (count_sr_conflicts): Use bitset_count.
4037 * src/reduce.c (inaccessable_symbols): Ditto.
4038 (bits_size): Remove.
4039 * src/warshall.h, src/warshall.c: Convert to bitsetv.
4040
f0250de6
AD
40412002-03-04 Akim Demaille <akim@epita.fr>
4042
4043 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
4044 * src/reduce.c: Remove the `bitset_zero's following the
4045 `bitset_create's, as now it is performed by the latter.
4046
ef017502
AD
40472002-03-04 Akim Demaille <akim@epita.fr>
4048
4049 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
4050 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
4051 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
4052 latest sources from Michael.
4053
76514394
AD
40542002-03-04 Akim Demaille <akim@epita.fr>
4055
4056 * src/output.c (output): Don't free the grammar.
4057 * src/reader.c (grammar_free): New.
4058 * src/main.c (main): Call it and don't free symtab here.
4059
55024580
AD
40602002-03-04 Akim Demaille <akim@epita.fr>
4061
4062 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
4063 before returning.
4064 Reported by Benoit Perrot.
4065
f9abaa2c
AD
40662002-03-04 Akim Demaille <akim@epita.fr>
4067
4068 Use bitset operations when possible, not loops over bits.
4069
4070 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
4071 bitset_or.
4072 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
4073 * src/reduce.c (useless_nonterminals): Formatting changes.
4074 * src/warshall.c (TC): Use bitset_or.
4075
0e721e75
AD
40762002-03-04 Akim Demaille <akim@epita.fr>
4077
4078 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
4079 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
4080 Ditto.
4081
0fb1ffb1
AD
40822002-03-04 Akim Demaille <akim@epita.fr>
4083
4084 * src/lalr.c (F): Now a bitset*.
4085 Adjust all dependencies.
4086
b86796bf
AD
40872002-03-04 Akim Demaille <akim@epita.fr>
4088
4089 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
4090 Adjust all dependencies.
4091
602bbf31
AD
40922002-03-04 Akim Demaille <akim@epita.fr>
4093
4094 * src/L0.c, src/LR0.h (nstates): Be size_t.
4095 Adjust comparisons (signed vs unsigned).
4096 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
4097 bitset*.
4098 Adjust all dependencies.
4099
d8a0245c
AD
41002002-03-04 Akim Demaille <akim@epita.fr>
4101
4102 * src/closure.c (firsts): Now, also a bitset.
4103 Adjust all dependencies.
4104 (varsetsize): Remove, now unused.
4105 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
4106
34ba9743
AD
41072002-03-04 Akim Demaille <akim@epita.fr>
4108
4109 * src/print.c: Convert to use bitset.h, not hand coded iterations
4110 over ints.
4111
ed86e78c
AD
41122002-03-04 Akim Demaille <akim@epita.fr>
4113
4114 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
4115
dfdb1797
AD
41162002-03-04 Akim Demaille <akim@epita.fr>
4117
4118 * src/closure.c (ruleset): Be a bitset.
4119 (rulesetsize): Remove.
4120
7086e707
AD
41212002-03-04 Akim Demaille <akim@epita.fr>
4122
4123 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
4124 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
4125 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
4126 * src/closure.c (fderives): Be an array of bitsets.
4127
98254360
RA
41282002-02-28 Robert Anisko <robert@lrde.epita.fr>
4129
4130 * data/bison.c++: Merge the two generated headers. Insert a copyright
4131 notice in each output file.
4132
a75c057f
AD
41332002-02-28 Akim Demaille <akim@epita.fr>
4134
4135 * data/bison.c++: Copy the prologue of bison.simple to fetch
4136 useful M4 definitions, such as b4_header_guard.
4137
06b00abc
AD
41382002-02-25 Akim Demaille <akim@epita.fr>
4139
4140 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
4141 translator friendly scheme for the bgr
4142 copyright notice.
06b00abc 4143
70e7d534
AD
41442002-02-25 Akim Demaille <akim@epita.fr>
4145
4146 * src/output.c (header_output): Remove, now handled completely via
4147 M4.
4148
abe017f6
AD
41492002-02-25 Akim Demaille <akim@epita.fr>
4150
4151 * m4/m4.m4: New, from CVS Autoconf.
4152 * configure.in: Invoke it.
4153 * src/output.c (output_skeleton): Use its result instead of the
4154 hard coded name.
4155
381fb12e
AD
41562002-02-25 Akim Demaille <akim@epita.fr>
4157
4158 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
4159 Fileutils 4.1.5.
4160 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
4161 * src/output.c (output_skeleton): Use mkstemp to create a real
4162 temporary file.
4163 Move the filling of `skeleton' and its muscle to...
4164 (prepare): here.
4165 (output): Move the definition of the prologue muscle to...
4166 (prepare): here.
4167 * src/system.h (DEFAULT_TMPDIR): New.
4168
6f38107f
PE
41692002-02-14 Paul Eggert <eggert@twinsun.com>
4170
4171 Remove the support for C++ namespace cleanliness; it was
4172 causing more problems than it was curing, since it didn't work
4173 properly on some nonstandard C++ compilers. This can wait
4174 for a proper C++ parser.
4175
4176 * NEWS: Document this.
4177 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
4178 of C++, as it's treated like C now.
4179 * src/bison.simple (YYSTD): Remove.
4180 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
4181 Treat C++ just like Standard C instead of trying to support
4182 namespace cleanliness.
4183
80cce3da
AD
41842002-02-14 Akim Demaille <akim@epita.fr>
4185
4186 * tests/regression.at (else): Adjust to Andreas' change.
4187
842e8679
AD
41882002-02-14 Akim Demaille <akim@epita.fr>
4189
4190 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
4191
4bda3f10
AD
41922002-02-13 Andreas Schwab <schwab@suse.de>
4193
4194 * src/output.c (output_rule_data): Don't output NULL, it might
4195 not be defined yet.
4196
4162fa07 41972002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 4198
4162fa07
RA
4199 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
4200 (Copyright notice): Update.
b418ecd8 4201
bd16a5dc
AD
42022002-02-11 Akim Demaille <akim@epita.fr>
4203
4204 * tests/regression.at (%nonassoc and eof): Don't include
4205 nonportable headers.
4206
8d69a1a3
RA
42072002-02-08 Robert Anisko <robert@lrde.epita.fr>
4208
4209 * data/bison.c++: Correct error recovery. Make the user able to
4210 initialize the starting location.
4211
9b2d0677
AD
42122002-02-07 Akim Demaille <akim@epita.fr>
4213
4214 * tests/input.at: New.
4215
69e2658b
RA
42162002-02-07 Robert Anisko <robert@lrde.epita.fr>
4217
4218 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 4219 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
4220 directives around tables only needed for debugging.
4221
4aacc3a7
RA
42222002-02-07 Robert Anisko <robert@lrde.epita.fr>
4223
4224 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
4225 C++ parsers.
4226 (yy::b4_name::parse): Use print_.
4227
762a801e
RA
42282002-02-07 Robert Anisko <robert@lrde.epita.fr>
4229
4230 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
4231
4bb2bc3f
RA
42322002-02-07 Robert Anisko <robert@lrde.epita.fr>
4233
4234 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
4235 C++ parsers.
4236 (yy::b4_name::parse): Build verbose error messages, and use error_.
4237
6b45a3ca
RA
42382002-02-06 Robert Anisko <robert@lrde.epita.fr>
4239
4240 * data/bison.c++: Fix m4 quoting in comments.
4241
50997c6e
RA
42422002-02-06 Robert Anisko <robert@lrde.epita.fr>
4243
4244 * data/bison.c++: Adjust the parser code. Fix some muscles that were
4245 not expanded by m4.
4246
3f3eed27
AD
42472002-02-05 Akim Demaille <akim@epita.fr>
4248
4249 * data/bison.c++: Adjust to the M4 back end.
4250 More is certainly needed.
4251
be2a1a68
AD
42522002-02-05 Akim Demaille <akim@epita.fr>
4253
4254 Give a try to M4 as a back end.
4255
4256 * lib/readpipe.c: New, from wdiff.
4257 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
4258 BISON_HAIRY.
4259 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
4260 specific values. Now it is m4 that performs the lookup.
4261 * src/parse-skel.y: Remove.
4262 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
4263 * src/output.c (actions_output, guards_output)
4264 (token_definitions_output): No longer keeps track of the output
4265 line number, hence remove the second argument.
4266 (guards_output): Check against the guard member of a rule, not the
4267 action member.
4268 Adjust callers.
4269 (output_skeleton): Don't look for the skeleton location, let m4 do
4270 that.
4271 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
4272 file will be used.
4273 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
4274 (prepare): Given that for the time being changesyntax is not
4275 usable in M4, rename the muscles using `-' to `_'.
4276 Define `defines_flag', `output_parser_name' and `output_header_name'.
4277 * src/output.h (actions_output, guards_output)
4278 (token_definitions_output): Adjust prototypes.
4279 * src/scan-skel.l: Instead of scanning the skeletons, it now
4280 processes the output of m4: `__oline__' and `#output'.
4281 * data/bison.simple: Adjust to be used by M4(sugar).
4282 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
4283 to date.
4284 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
4285 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
4286 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
4287 shamelessly stolen from CVS Autoconf.
4288
beda758b
AD
42892002-02-05 Akim Demaille <akim@epita.fr>
4290
4291 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
4292 * configure.in: Check for the declarations of free and malloc.
4293 * src/muscle_tab.c: Adjust.
4294
5ece6d43
AD
42952002-02-05 Akim Demaille <akim@epita.fr>
4296
4297 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
4298 which have no values.
4299
5bb18f9a
AD
43002002-02-05 Akim Demaille <akim@epita.fr>
4301
4302 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
4303 * data/: here.
4304
894dd62e
PE
43052002-01-29 Paul Eggert <eggert@twinsun.com>
4306
4307 * src/bison.simple (YYSIZE_T): Do not define merely because
4308 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
4309 On some platforms, <alloca.h> does not declare YYSTD (size_t).
4310
82841af7
AD
43112002-01-27 Akim Demaille <akim@epita.fr>
4312
4313 Fix `%nonassoc and eof'.
4314
4315 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
4316 which were not properly copied! Replace
4317 memcpy (res->errs, src->errs, src->nerrs);
4318 with
4319 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
4320 !!!
4321 * tests/regression.at (%nonassoc and eof): Adjust to newest
4322 Autotest: `.' is not in the PATH.
4323
318b76e9
AD
43242002-01-27 Akim Demaille <akim@epita.fr>
4325
4326 * tests/sets.at (AT_EXTRACT_SETS): New.
4327 (Nullable): Use it.
4328 (Firsts): New.
4329
30d2f3d5
AD
43302002-01-26 Akim Demaille <akim@epita.fr>
4331
4332 * tests/actions.at, tests/calc.at, tests/headers.at,
4333 * tests/torture.at: Adjust to the newest Autotest which no longer
4334 forces `.' in the PATH.
4335
30f8c395
AD
43362002-01-25 Akim Demaille <akim@epita.fr>
4337
4338 * tests/regression.at (%nonassoc and eof): New.
4339 Suggested by Robert Anisko.
4340
29ae55f1
AD
43412002-01-24 Akim Demaille <akim@epita.fr>
4342
4343 Bison dumps core when trying to complain about broken input files.
4344 Reported by Cris van Pelt.
4345
4346 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
4347 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
4348 into...
4349 (Invalid inputs): Strengthen: exercise parse_percent_token.
4350
2b548aa6
RA
43512002-01-24 Robert Anisko <robert.anisko@epita.fr>
4352
4353 * src/Makefile.am: Add bison.c++.
4354 * src/bison.c++: New skeleton.
4355
bb0146c2
AD
43562002-01-21 Paolo Bonzini <bonzini@gnu.org>
4357
4358 * po/it.po: New.
4359
bec30531
AD
43602002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
4361
4362 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
4363
fc6edc45
MA
43642002-01-20 Marc Autret <marc@gnu.org>
4365
4366 * src/files.c (compute_output_file_names): Fix
4367
5e5d5415
MA
43682002-01-20 Marc Autret <marc@gnu.org>
4369
4370 * tests/output.at: New test.
4371 * src/files.c (compute_base_names): Don't map extensions when
4372 the YACC flag is set, use defaults.
4373 Reported by Evgeny Stambulchik.
4374
44ea3fbd
MA
43752002-01-20 Marc Autret <marc@gnu.org>
4376
bb0146c2 4377 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
4378 compilers as well (i.e. the vendor C compiler).
4379 Suggested by Albert Chin-A-Young.
4380
338963d1
TVH
43812002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
4382
4383 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
4384 canonical definition.
4385 * src/system.h: Use the canonical definition for PARAMS (avoids
4386 a conflict with the macro from lib/hash.h).
4387
c57b2479
AD
43882002-01-11 Akim Demaille <akim@epita.fr>
4389
4390 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 4391 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 4392
b85810ae
AD
43932002-01-09 Akim Demaille <akim@epita.fr>
4394
4395 * src/files.c, src/files.h (output_infix): New.
4396 (tab_extension): Remove.
4397 (compute_base_names): Compute the former, drop the latter.
4398 * src/output.c (prepare): Insert the muscles `output-infix', and
4399 `output-suffix'.
4400 * src/parse-skel.y (string, string.1): New.
4401 (section.header): Use it.
4402 (section.yacc): Remove.
4403 (prefix): Remove too.
4404 * src/scan-skel.l: Adjust.
4405 * src/bison.simple, src/bison.hairy: Adjust.
4406
cae60122
AD
44072002-01-09 Akim Demaille <akim@epita.fr>
4408
4409 * configure.in (WERROR_CFLAGS): Compute it.
4410 * src/Makefile.am (CFLAGS): Pass it.
4411 * tests/atlocal.in (CFLAGS): Idem.
4412 * src/files.c: Fix a few warnings.
4413 (get_extension_index): Remove, unused.
4414
ae404801
AD
44152002-01-08 Akim Demaille <akim@epita.fr>
4416
4417 * src/getargs.c (AS_FILE_NAME): New.
4418 (getargs): Use it to convert DOSish file names.
4419 * src/files.c (base_name): Rename as full_base_name to avoid
4420 clashes with `base_name ()'.
4421 (filename_split): New.
4422 (compute_base_names): N-th rewrite, using filename_split.
4423
22312b71
AD
44242002-01-08 Akim Demaille <akim@epita.fr>
4425
4426 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
4427 New, stolen from the Fileutils 4.1.
4428 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
4429 * configure.in: Check for the presence of memrchr, and of its
4430 prototype.
4431
a67cef01
TVH
44322002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
4433
4434 * lib/hash.h (__P): Added definition for this macro.
4435 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
4436 BUILT_SOURCES, to ensure they are generated first.
4437 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
4438 %error-verbose to allow bootstrapping with bison 1.30x.
4439
2b25d624
AD
44402002-01-06 Akim Demaille <akim@epita.fr>
4441
4442 * src/reader.c (parse_braces): Don't fetch the next char, the
4443 convention is to fetch on entry.
4444 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
4445 'switch' without a following semicolon.
4446 * tests/regression.at (braces parsing): New.
4447
3460813b
AD
44482002-01-06 Akim Demaille <akim@epita.fr>
4449
4450 Bison is dead wrong in its RR conflict reports.
4451
4452 * tests/torture.at (GNU Cim Grammar): New.
4453 * src/conflicts.c (count_rr_conflicts): Fix.
4454
73784c64
AD
44552002-01-06 Akim Demaille <akim@epita.fr>
4456
4457 Creating package.m4 from configure.ac causes too many problems.
4458
4459 * tests/Makefile.am (package.m4): Create it by hand,
4460 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
4461
25d81090
AD
44622002-01-06 Akim Demaille <akim@epita.fr>
4463
4464 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
4465 skeleton.h.
4466
a9b8959e
PE
44672002-01-04 Paul Eggert <eggert@twinsun.com>
4468
4469 * doc/bison.texinfo (Debugging):
4470 Remove YYSTDERR; it's no longer defined or used.
4471 Also, s/cstdio.h/cstdio/.
4472
25d81090
AD
44732002-01-03 Akim Demaille <akim@epita.fr>
4474
4475 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
4476
1109455c
AD
44772002-01-03 Akim Demaille <akim@epita.fr>
4478
4479 * src/parse-skel.y (process_skeleton): Don't bind the parser's
4480 tracing code to --trace, wait for a better --trace option, with
4481 args.
4482
7ea5e977
AD
44832002-01-03 Akim Demaille <akim@epita.fr>
4484
4485 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
4486 The ISO C++ standard is extremely clear about it: stderr is
4487 considered a macro, not a regular symbol (see table 94 `Header
4488 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
4489 Therefore std:: does not apply to it. It still does with fprintf.
4490 Also, s/cstdio.h/cstdio/.
4491
fab5b110
AD
44922002-01-03 Akim Demaille <akim@epita.fr>
4493
4494 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
4495 for non system headers.
4496
aed7fd9b
AD
44972002-01-02 Akim Demaille <akim@epita.fr>
4498
4499 Equip the skeleton chain with location tracking, runtime trace,
4500 pure parser and scanner.
4501
4502 * src/parse-skel.y: Request a pure parser, locations, and prefix
4503 renaming.
4504 (%union): Having several members with the same type does not help
4505 type mismatches, simplify.
4506 (YYPRINT, yyprint): New.
4507 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
4508 (skel_error): this.
4509 Handle locations.
4510 * src/scan-skel.l: Adjust to these changes.
4511 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
4512 (LOCATION_PRINT, skel_control_t): New.
4513
24fad99e
AD
45142001-12-30 Akim Demaille <akim@epita.fr>
4515
4516 * src/parse-skel.y: Get rid of the shift/reduce conflict:
4517 replace `gb' with BLANKS.
4518 * src/scan-skel.l: Adjust.
4519
a4b36db4
AD
45202001-12-30 Akim Demaille <akim@epita.fr>
4521
4522 * src/system.h: We don't need nor want bcopy.
4523 Throw away MS-DOS crap: we don't need getpid.
4524 * configure.in: We don't need strndup. It was even causing
4525 problems: because Flex includes the headers *before* us,
4526 _GNU_SOURCE is not defined by config.h, and therefore strndup was
4527 not visible.
4528 * lib/xstrndup.c: New.
4529 * src/scan-skel.l: Use it.
4530 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
4531 * src/parse-skel.y: Use %directives instead of #defines.
4532
1239777d
AD
45332001-12-30 Akim Demaille <akim@epita.fr>
4534
4535 * src/skeleton.h: New.
4536 * src/output.c (output_parser, output_master_parser): Remove, dead
4537 code.
4538 * src/output.h (get_lines_number, actions_output, guards_output)
4539 (token_definitions_output): Prototype them.
4540 * src/parse-skel.y: Add the license notice.
4541 Include output.h and skeleton.h.
4542 (process_skeleton): Returns void, and takes a single parameter.
4543 * src/scan-skel.l: Add the license notice.
4544 Include skeleton.h.
4545 Don't use %option yylineno: it seems that then Flex imagines
4546 REJECT has been used, and therefore it won't reallocate its
4547 buffers (which makes no other sense to me than a bug). It results
4548 in warnings for `unused: yy_flex_realloc'.
4549
9b3add5b
RA
45502001-12-30 Robert Anisko <robert.anisko@epita.fr>
4551
4552 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
4553 (MUSCLE_INSERT_PREFIX): ...to there.
4554 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
4555 (MUSCLE_INSERT_PREFIX): Move from here...
4556
4557 * src/bison.hairy: Add a section directive. Put braces around muscle
4558 names. This parser skeleton is still broken, but Bison should not
4559 choke on a bad muscle 'syntax'.
4560 * src/bison.simple: Add a section directive. Put braces around muscle
4561 names.
4562
4563 * src/files.h (strsuffix, stringappend): Add declarations.
4564 (tab_extension): Add declaration.
4565 (short_base_name): Add declaration.
4566
4567 * src/files.c (strsuffix, stringappend): No longer static. These
4568 functions are used in the skeleton parser.
4569 (tab_extension): New.
4570 (compute_base_names): Use the computations done in this function
fab5b110 4571 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
4572 names.
4573 (short_base_name): No longer static.
4574
4575 * src/output.c (output_skeleton): New.
4576 (output): Disable call to output_master_parser, and give a try to
4577 a new skeleton handling system.
4578 (guards_output, actions_output): No longer static.
4579 (token_definitions_output, get_lines_number): No longer static.
4580
4581 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
4582
fab5b110 4583 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
4584 parse-skel.y.
4585
4586 * src/parse-skel.y: New file.
4587 * src/scan-skel.l: New file.
4588
b5b61c61
AD
45892001-12-29 Akim Demaille <akim@epita.fr>
4590
4591 %name-prefix is broken.
4592
4593 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
4594 Adjust all dependencies.
4595 * tests/headers.at (export YYLTYPE): Strengthen this test: use
4596 %name-prefix.
4597
4598 Renaming yylval but not yylloc is not consistent. Now we do.
4599
4600 * src/bison.simple: Prefix yylloc if used.
4601 * doc/bison.texinfo (Decl Summary): Document that.
4602
8c9a50be
AD
46032001-12-29 Akim Demaille <akim@epita.fr>
4604
4605 * doc/bison.texinfo: Promote `%long-directive' over
4606 `%long_directive'.
4607 Remove all references to fixed-output-files, yacc is enough.
4608
d99361e6
AD
46092001-12-29 Akim Demaille <akim@epita.fr>
4610
4611 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
4612 user prologue. These are defaults.
4613 * tests/actions.at (Mid-rule actions): Make sure the user can
4614 define YYDEBUG and YYERROR_VERBOSE.
4615
b9cecb91
AD
46162001-12-29 Akim Demaille <akim@epita.fr>
4617
4618 * src/output.c (header_output): Don't forget to export YYLTYPE and
4619 yylloc.
4620 * tests/headers.at (export YYLTYPE): New, make sure it does.
4621 * tests/regression.at (%union and --defines, Invalid CPP headers):
4622 Move to...
4623 * tests/headers.at: here.
4624
aea13e97
AD
46252001-12-29 Akim Demaille <akim@epita.fr>
4626
4627 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
4628
931394cb
AD
46292001-12-29 Akim Demaille <akim@epita.fr>
4630
4631 * tests/actions.at (Mid-rule actions): Output on a single line
4632 instead of several.
4633
704a47c4
AD
46342001-12-29 Akim Demaille <akim@epita.fr>
4635
4636 * doc/bison.texinfo: Formatting changes.
4637
091e20bb
AD
46382001-12-29 Akim Demaille <akim@epita.fr>
4639
4640 Don't store the token defs in a muscle, just be ready to output it
4641 on command. Now possible via `symbols'. Fixes a memory leak.
4642
4643 * src/output.c (token_definitions_output): New.
4644 (output_parser, header_output): Use it.
4645 * src/reader.c (symbols_save): Remove.
4646
cce71710
AD
46472001-12-29 Akim Demaille <akim@epita.fr>
4648
4649 * src/bison.simple: Do not provide a default for YYSTYPE and
4650 YYLTYPE before the user's prologue. Otherwise it's hardly... a
4651 default.
4652
82c035a8
AD
46532001-12-29 Akim Demaille <akim@epita.fr>
4654
4655 Mid-rule actions are simply... ignored!
4656
4657 * src/reader.c (readgram): Be sure to attach mid-rule actions to
4658 the empty-rule associated to the dummy symbol, not to the host
4659 rule.
4660 * tests/actions.at (Mid-rule actions): New.
4661
8419d367
AD
46622001-12-29 Akim Demaille <akim@epita.fr>
4663
4664 Memory leak.
4665
4666 * src/reader.c (reader): Free grammar.
4667
375d5806
AD
46682001-12-29 Akim Demaille <akim@epita.fr>
4669
4670 Memory leak.
4671
4672 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
4673 since it allocates it for each state, although only one is needed.
4674 (allocate_storage): Do it here.
4675
f51cb8ff
AD
46762001-12-29 Akim Demaille <akim@epita.fr>
4677
4678 * src/options.h, src/options.c (create_long_option_table): Rename
4679 as...
4680 (long_option_table_new): this, with a clearer prototype.
4681 (percent_table): Remove, unused,
4682 * src/getargs.c (getargs): Adjust.
4683
29e88316
AD
46842001-12-29 Akim Demaille <akim@epita.fr>
4685
4686 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
4687 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
4688 as states.
4689
b9f71f19
AD
46902001-12-29 Akim Demaille <akim@epita.fr>
4691
4692 * src/lalr.c (build_relations): Rename `states' as `states1'.
4693 Sorry, I don't understand exactly what it is, no better name...
4694
1a2b5d37
AD
46952001-12-29 Akim Demaille <akim@epita.fr>
4696
4697 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
4698 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
4699 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
4700 as rules.
4701
1cca533e
AD
47022001-12-29 Akim Demaille <akim@epita.fr>
4703
4704 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
4705 ago.
4706
c03ae966
AD
47072001-12-29 Akim Demaille <akim@epita.fr>
4708
4709 * src/reader.c, src/reader.h (user_toknums): Remove.
4710 Adjust all users to use symbols[i]->user_token_number.
4711
5a670b1e
AD
47122001-12-29 Akim Demaille <akim@epita.fr>
4713
4714 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
4715 Adjust all users to use symbols[i]->prec or ->assoc.
4716
ad949da9
AD
47172001-12-29 Akim Demaille <akim@epita.fr>
4718
4719 * src/reader.c, src/reader.h (tags): Remove.
4720 Adjust all users to use symbols[i]->tag.
4721
0e78e603
AD
47222001-12-29 Akim Demaille <akim@epita.fr>
4723
4724 * src/gram.h, src/gram.c (symbols): New, similar to state_table
4725 and rule_table.
4726 * src/reader.c (packsymbols): Fill this table.
4727 Drop sprec.
4728 * src/conflicts.c (resolve_sr_conflict): Adjust.
4729 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
4730 single table.
4731 Use symbols[i]->tag instead of tags[i].
4732
213e640e
AD
47332001-12-29 Akim Demaille <akim@epita.fr>
4734
4735 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
4736 In addition, put a comment in there, to replace...
4737 * tests/regression.at (%union and C comments): Remove.
4738
e7b8bef1
AD
47392001-12-29 Akim Demaille <akim@epita.fr>
4740
4741 * tests/regression.at (Web2c Actions): Blindly move the actual
4742 output as expected output. The contents *seem* right to me, but I
4743 can't pretend reading perfectly parser tables... Nonetheless, all
4744 the other tests pass correctly, the table look OK, even though the
4745 presence of `$axiom' is to be noted: AFAICS it is useless (but
4746 harmless).
4747
b68e7744
AD
47482001-12-29 Akim Demaille <akim@epita.fr>
4749
4750 * src/reader.c (readgram): Don't add the rule 0 if there were no
4751 rules read. In other words, add it _after_ having performed
4752 grammar sanity checks.
4753 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
4754
78d5bae9
AD
47552001-12-29 Akim Demaille <akim@epita.fr>
4756
4757 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
4758 visible, and some states have now a different number.
4759
ff442794
AD
47602001-12-29 Akim Demaille <akim@epita.fr>
4761
4762 * src/reader.c (readgram): Bind the initial rule's lineno to that
4763 of the first rule.
4764 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
4765 (Solved SR Conflicts): Adjust rule 0's line number.
4766
610ab194
AD
47672001-12-29 Akim Demaille <akim@epita.fr>
4768
4769 Fix the `GAWK Grammar' failure.
4770
4771 * src/LR0.c (final_state): Initialize to -1 so that we do compute
4772 the reductions of the first state which was mistakenly confused
4773 with the final state because precisely final_state was initialized
4774 to 0.
4775 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
4776 now noticed by Bison.
4777 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
4778 have a reduction on $default.
4779
29d29c8f
AD
47802001-12-29 Akim Demaille <akim@epita.fr>
4781
4782 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
4783 rule line numbers.
4784 * src/closure.c (print_closure): Likewise.
4785 * src/derives.c (print_derives): Likewise.
4786 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
4787 now.
4788
7c6b64d0
AD
47892001-12-29 Akim Demaille <akim@epita.fr>
4790
4791 * src/lalr.c (lookaheads_print): New.
4792 (lalr): Call it when --trace-flag.
4793 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
4794 are dumped.
4795
3d4daee3
AD
47962001-12-29 Akim Demaille <akim@epita.fr>
4797
4798 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
4799 when walking through ritem, even via rule->rhs.
4800 * src/reduce.c (dump_grammar, useful_production, reduce_output)
4801 (useful_production, useless_nonterminals): Likewise.
4802 (reduce_grammar_tables): Likewise, plus update nritems.
4803 * src/nullable.c (set_nullable): Likewise.
4804 * src/lalr.c (build_relations): Likewise.
4805 * tests/sets.at (Nullable): Adjust.
4806 Fortunately, now, the $axiom is no longer nullable.
4807
9e7f6bbd
AD
48082001-12-29 Akim Demaille <akim@epita.fr>
4809
4810 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
4811 the 0-sentinel.
4812 * src/gram.c (ritem_longest_rhs): Likewise.
4813 * src/reduce.c (nonterminals_reduce): Likewise.
4814 * src/print_graph.c (print_graph): Likewise.
4815 * src/output.c (output_rule_data): Likewise.
4816 * src/nullable.c (set_nullable): Likewise.
4817
255ef638
AD
48182001-12-29 Akim Demaille <akim@epita.fr>
4819
4820 * src/output.c: Comment changes.
4821
0d8a7363
AD
48222001-12-27 Paul Eggert <eggert@twinsun.com>
4823
4824 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
4825 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
4826 Sparc, as they were causing more porting problems than the
4827 (minor) performance improvement was worth.
4828
4829 Also, catch up with 1.31's YYSTD.
4830
3db472b9
AD
48312001-12-27 Akim Demaille <akim@epita.fr>
4832
4833 * src/output.c (output_gram): Rely on nritems, not the
4834 0-sentinel. See below.
4835 Use -1 as separator, not 0.
4836 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
4837 Rely on -1 as separator in yyrhs, instead of 0.
4838 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
4839 twice `Now at end of input', therefore there are two lines less to
4840 expect.
4841
b365aa05
AD
48422001-12-27 Akim Demaille <akim@epita.fr>
4843
4844 * tests/regression.at (Unresolved SR Conflicts):
4845 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
4846 below.
4847
30171f79
AD
48482001-12-27 Akim Demaille <akim@epita.fr>
4849
4850 * src/LR0.c (new_state): Recognize the final state by the fact it
4851 is reached by eoftoken.
4852 (insert_start_shifting_state, insert_eof_shifting_state)
4853 (insert_accepting_state, augment_automaton): Remove, since now
4854 these states are automatically computed from the initial state.
4855 (generate_states): Adjust.
4856 * src/print.c: When reporting a rule number to the user, substract
4857 1, so that the axiom rule is rule 0, and the first user rule is 1.
4858 * src/reduce.c: Likewise.
4859 * src/print_graph.c (print_core): For the time being, just as for
4860 the report, depend upon --trace-flags to dump the full set of
4861 items.
4862 * src/reader.c (readgram): Once the grammar read, insert the rule
4863 0: `$axiom: START-SYMBOL $'.
4864 * tests/set.at: Adjust: rule 0 is now displayed, and since the
4865 number of the states has changed (the final state is no longer
4866 necessarily the last), catch up.
4867
75142d45
AD
48682001-12-27 Akim Demaille <akim@epita.fr>
4869
4870 Try to make the use of the eoftoken valid. Given that its value
4871 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
4872 is used instead of > 0 where appropriate, (ii), depend upon nritems
4873 instead of the 0-sentinel.
4874
4875 * src/gram.h, src/gram.c (nritems): New.
4876 Expected to be duplication of nitems, but for the time being...
4877 * src/reader.c (packgram): Assert nritems and nitems are equal.
4878 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
4879 * src/closure.c (print_closure, print_fderives): Likewise.
4880 * src/gram.c (ritem_print): Likewise.
4881 * src/print.c (print_core, print_grammar): Likewise.
4882 * src/print_graph.c: Likewise.
4883
b7c49edf
AD
48842001-12-27 Akim Demaille <akim@epita.fr>
4885
4886 * src/main.c (main): If there are complains after grammar
4887 reductions, then output the report anyway if requested, then die.
4888 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
4889 * src/reader.c (eoftoken): New.
4890 (parse_token_decl): If the token being defined has value `0', it
4891 is the eoftoken.
4892 (packsymbols): No longer hack `tags' to insert `$' by hand.
4893 Be sure to preserve the value of the eoftoken.
4894 (reader): Make sure eoftoken is defined.
4895 Initialize nsyms to 0: now eoftoken is created just like the others.
4896 * src/print.c (print_grammar): Don't special case the eof token.
4897 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
4898 lie anyway, albeit pleasant.
4899 * tests/calc.at: Exercise error messages with eoftoken.
4900 Change the grammar so that empty input is invalid.
4901 Adjust expectations.
4902 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
4903
ec2da99f
AD
49042001-12-27 Akim Demaille <akim@epita.fr>
4905
4906 * configure.in: Check the protos of strchr ans strspn.
4907 Replace strchr if needed.
4908 * src/system.h: Provide the protos of strchr, strspn and memchr if
4909 missing.
4910 * lib/strchr.c: New.
4911 * src/reader.c (symbols_save): Use strchr.
4912
8adfa272
AD
49132001-12-27 Akim Demaille <akim@epita.fr>
4914
4915 * src/print.c, src/print_graph.c (escape): New.
4916 Use it to quote the TAGS outputs.
4917 * src/print_graph.c (print_state): Now errors are in red, and
4918 reductions in green.
4919 Prefer high to wide: output the state number on a line of its own.
4920
80dac38c
AD
49212001-12-27 Akim Demaille <akim@epita.fr>
4922
4923 * src/state.h, src/state.c (reductions_new): New.
4924 * src/LR0.c (set_state_table): Let all the states have a
4925 `reductions', even if reduced to 0.
4926 (save_reductions): Adjust.
4927 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
4928 * src/print.c (print_reductions, print_actions): Adjust.
4929 * src/output.c (action_row): Adjust.
4930
2cec70b9
AD
49312001-12-27 Akim Demaille <akim@epita.fr>
4932
4933 * src/state.h, src/state.c (errs_new, errs_dup): New.
4934 * src/LR0.c (set_state_table): Let all the states have an errs,
4935 even if reduced to 0.
4936 * src/print.c (print_errs, print_reductions): Adjust.
4937 * src/output.c (output_actions, action_row): Adjust.
4938 * src/conflicts.c (resolve_sr_conflict): Adjust.
4939
13ca549a
AD
49402001-12-27 Akim Demaille <akim@epita.fr>
4941
4942 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
4943
5092aba5
AD
49442001-12-27 Akim Demaille <akim@epita.fr>
4945
4946 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
4947 * src/print.c: here.
4948 (lookaheadset, shiftset): New, used as additional storage by
4949 print_reductions.
4950 (print_results): Adjust.
4951 (print_shifts, print_gotos, print_errs): New, extracted from...
4952 (print_actions): here.
4953 * src/print_graph.c (print_actions): Remove dead code.
4954
11e2beca
AD
49552001-12-27 Akim Demaille <akim@epita.fr>
4956
4957 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
4958 `$n' and `@n'.
4959
dac3c910
AD
49602001-12-27 Akim Demaille <akim@epita.fr>
4961
4962 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
4963 (build_relations): Adjust.
4964
d0b0fefa
AD
49652001-12-27 Akim Demaille <akim@epita.fr>
4966
4967 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
4968 duplication.
4969
adc8c848
AD
49702001-12-27 Akim Demaille <akim@epita.fr>
4971
4972 * src/reader.c (packgram): Catch nitems overflows.
4973
14d293ac
AD
49742001-12-27 Akim Demaille <akim@epita.fr>
4975
4976 * src/files.c, src/files.h (guard_obstack): Remove.
4977 * src/output.c (output): Adjust.
4978 * src/reader.c (parse_braces): New, factoring...
4979 (copy_action, copy_guard): these two which are renamed as...
4980 (parse_action, parse_guard): these.
4981 As a voluntary consequence, using braces around guards is now
4982 mandatory.
4983
f499b062
AD
49842001-12-27 Akim Demaille <akim@epita.fr>
4985
4986 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
4987 * src/reader.c (symbol_list): `guard' and `guard_line' are new
4988 members.
4989 (symbol_list_new): Adjust.
4990 (copy_action): action_line is the first line, not the last.
4991 (copy_guard): Just as for actions, store the `action' only, not
4992 the switch/case/break flesh.
4993 Don't parse the user action that might follow the guard, let...
4994 (readgram): do it, i.e., now, there can be an action after a
4995 guard.
4996 In other words the guard is just explicitly optional.
4997 (packgram): Adjust.
4998 * src/output.c (guards_output): New.
4999 (output_parser): Call it when needed.
5000 (output): Also free the guard and attrs obstacks.
5001 * src/files.c, src/files.h (obstack_save): Remove.
5002 (output_files): Remove.
5003 As a result, if one needs the former `.act' file, using an
5004 appropriate skeleton which requires actions and guards is now
5005 required.
5006 * src/main.c (main): Adjust.
5007 * tests/semantic.at: New.
5008 * tests/regression.at: Use `input.y' as input file name.
5009 Avoid 8+3 problems by requiring input.c when the test needs the
5010 parser.
5011
d945f5cd
AD
50122001-12-27 Akim Demaille <akim@epita.fr>
5013
5014 * src/reader.c (symbol_list_new): Be sure to initialize all the
5015 fields.
5016
d200e455
AD
50172001-12-27 Akim Demaille <akim@epita.fr>
5018
5019 All the hacks using a final pseudo state are now useless.
5020
5021 * src/LR0.c (set_state_table): state_table holds exactly nstates.
5022 * src/lalr.c (nLA): New.
5023 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
5024 instead of lookaheadsp from the pseudo state (nstate + 1).
5025
f9507c28
AD
50262001-12-27 Akim Demaille <akim@epita.fr>
5027
5028 * src/output.c (action_row, token_actions): Use a state_t instead
5029 of a integer, and nlookaheads instead of the following state's
5030 lookaheadsp.
5031
065fbd27
AD
50322001-12-27 Akim Demaille <akim@epita.fr>
5033
5034 * src/conflicts.c (log_resolution, flush_shift)
5035 (resolve_sr_conflict, set_conflicts, solve_conflicts)
5036 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
5037 (conflicts_print, print_reductions): Use a state_t instead of an
5038 integer when referring to a state.
5039 As much as possible, depend upon nlookaheads, instead of the
5040 `lookaheadsp' member of the following state (since lookaheads of
5041 successive states are successive, the difference between state n + 1
5042 and n served as the number of lookaheads for state n).
5043 * src/lalr.c (add_lookback_edge): Likewise.
5044 * src/print.c (print_core, print_actions, print_state)
5045 (print_results): Likewise.
5046 * src/print_graph.c (print_core, print_actions, print_state)
5047 (print_graph): Likewise.
5048 * src/conflicts.h: Adjust.
5049
1b177bd7
AD
50502001-12-27 Akim Demaille <akim@epita.fr>
5051
5052 * src/bison.hairy: Formatting/comment changes.
5053 ANSIfy.
5054 Remove `register' indications.
5055 Add plenty of `static'.
5056
7742ddeb
AD
50572001-12-27 Akim Demaille <akim@epita.fr>
5058
5059 * src/output.c (prepare): Drop the muscle `ntbase' which
5060 duplicates ntokens.
5061 * src/bison.simple: Formatting/comment changes.
5062 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
5063 is an undocumented synonym.
5064
1fa14068
AD
50652001-12-22 Akim Demaille <akim@epita.fr>
5066
5067 * src/output.c (output_table_data): Change the prototype to use
5068 `int' for array ranges: some invocations do pass an int, not a
5069 short.
5070 Reported by Wayne Green.
5071
b9752825
AD
50722001-12-22 Akim Demaille <akim@epita.fr>
5073
5074 Some actions of web2c.y are improperly triggered.
5075 Reported by Mike Castle.
5076
5077 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
5078 * tests/regression.at (Web2c): Rename as...
5079 (Web2c Report): this.
5080 (Web2c Actions): New.
5081
776209d6
AD
50822001-12-22 Akim Demaille <akim@epita.fr>
5083
5084 Reductions in web2c.y are improperly reported.
5085 Reported by Mike Castle.
5086
5087 * src/conflicts.c (print_reductions): Fix.
5088 * tests/regression.at (Web2c): New.
5089
275fc3ad
AD
50902001-12-18 Akim Demaille <akim@epita.fr>
5091
5092 Some host fail on `assert (!"foo")', which expands to
5093 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
5094 Reported by Nelson Beebee.
5095
5096 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
5097 `#define it_succeeded 0' and `assert (it_succeeded)'.
5098
897668ee
MA
50992001-12-17 Marc Autret <autret_m@epita.fr>
5100
5101 * src/bison.simple: Don't hard code the skeleton line and filename.
5102 * src/output.c (output_parser): Rename 'line' as 'output_line'.
5103 New line counter 'skeleton_line' (skeleton-line muscle).
5104
ab3399e0
PE
51052001-12-17 Paul Eggert <eggert@twinsun.com>
5106
5107 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
5108 YYDEBUG must be defined to a nonzero value.
5109
5110 * src/bison.simple (yytname): Do not assume that the user defines
5111 YYDEBUG to a properly parenthesized expression.
5112
3877f72b
AD
51132001-12-17 Akim Demaille <akim@epita.fr>
5114
5115 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
5116 nlookaheads is a new member.
5117 Adjust all users.
5118 * src/lalr.h (nlookaheads): Remove this orphan declaration.
5119 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
5120 state.
776209d6 5121
331dbc1b
AD
51222001-12-17 Akim Demaille <akim@epita.fr>
5123
5124 * src/files.h, src/files.c (open_files, close_files): Remove.
5125 * src/main.c (main): Don't open/close files, nor invoke lex_free,
5126 let...
5127 * src/reader.c (reader): Do it.
776209d6 5128
be750e4c
AD
51292001-12-17 Akim Demaille <akim@epita.fr>
5130
5131 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 5132
709ae8c6
AD
51332001-12-17 Akim Demaille <akim@epita.fr>
5134
5135 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
5136 (flush_reduce): New.
5137 (resolve_sr_conflict): Adjust.
776209d6 5138
f87685c3
AD
51392001-12-17 Akim Demaille <akim@epita.fr>
5140
5141 * src/output.c (output_obstack): Be static and rename as...
5142 (format_obstack): this, to avoid any confusion with files.c's
5143 output_obstack.
5144 * src/reader.h (muscle_obstack): Move to...
5145 * src/output.h: here, since it's defined in output.c.
5146
837491d8
AD
51472001-12-17 Akim Demaille <akim@epita.fr>
5148
5149 * src/output.c (action_row, save_column, default_goto)
5150 (sort_actions, matching_state, pack_vector): Better variable
5151 locality.
5152
796d61fb
AD
51532001-12-17 Akim Demaille <akim@epita.fr>
5154
5155 * src/output.c: Various formatting changes.
776209d6 5156
64d15509
AD
51572001-12-17 Akim Demaille <akim@epita.fr>
5158
5159 * src/files.c (output_files): Free the output_obstack.
5160 * src/main.c (main): Call print and print_graph conditionally.
5161 * src/print.c (print): Work unconditionally.
5162 * src/print_graph.c (print_graph): Work unconditionally.
5163 * src/conflicts.c (log_resolution): Output only if verbose_flag.
5164
fbc8ecb7
MA
51652001-12-16 Marc Autret <autret_m@epita.fr>
5166
5167 * src/output.c (actions_output): Fix. When we use %no-lines,
5168 there is one less line per action.
5169
f0440388
MA
51702001-12-16 Marc Autret <autret_m@epita.fr>
5171
5172 * src/bison.simple: Remove a useless #line directive.
5173 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
5174 * src/output.c (get_lines_number): New.
776209d6 5175 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
5176 output muscles.
5177 Fix line numbering.
5178 (actions_output): Computes the number of lines taken by actions.
5179 (output_master_parser): Insert new skeleton which is the name of
5180 the output parser file name.
5181
a79986b8
MA
51822001-12-15 Marc Autret <autret_m@epita.fr>
5183
5184 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
5185
4ec8e00f
MA
51862001-12-15 Marc Autret <autret_m@epita.fr>
5187
5188 * src/output.c (output_gram): Keep track of the hairy one.
5189
1a4648ff
AD
51902001-12-15 Akim Demaille <akim@epita.fr>
5191
5192 Make `make distcheck' work.
5193
5194 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
5195 system.h which uses libgettext.h.
5196
9c2c67e6
AD
51972001-12-15 Akim Demaille <akim@epita.fr>
5198
5199 * src/nullable.c (set_nullable): Useless rules must be skipped,
5200 otherwise, since we range over their symbols, we might look at a
5201 nonterminal which no longer ``exists'', i.e., it is not counted in
5202 `nvars', hence we overflow our arrays.
5203
93ede233
AD
52042001-12-15 Akim Demaille <akim@epita.fr>
5205
5206 The header can also be produced directly, without any obstack!
5207 Yahoo!
5208
5209 * src/files.c, src/files.h (defines_obstack): Remove.
5210 (compute_header_macro): Global.
5211 (defines_obstack_save): Remove.
5212 * src/reader.c (parse_union_decl): No longer output to
5213 defines_obstack: its content can be found in the `stype' muscle
5214 anyway.
5215 (output_token_translations): Merge into...
5216 (symbols_output): this.
5217 Rename as...
5218 (symbols_save): this.
5219 (reader): Adjust.
5220 * src/output.c (header_output): New.
5221 (output): Call it.
5222
2666f928
AD
52232001-12-15 Akim Demaille <akim@epita.fr>
5224
5225 * src/reader.c (parse_union_decl): Instead of handling two obstack
5226 simultaneously, use one to define the `stype' muscle, and use the
5227 value of the latter to fill defines_obstack.
5228 (copy_comment): Remove.
5229 (copy_comment2): Work for a single obstack.
5230 Rename as...
5231 (copy_comment): this.
5232
428046f8
AD
52332001-12-15 Akim Demaille <akim@epita.fr>
5234
5235 * src/lex.c, src/lex.h (xgetc): No longer static.
5236 * src/reader.c (parse_union_decl): Revamp.
5237
ea52d706
AD
52382001-12-15 Akim Demaille <akim@epita.fr>
5239
5240 Still making progress in separating Bison into (i) input, (ii)
5241 process, (iii) output: now we can directly output the parser file
5242 without using table_obstack at all.
5243
5244 * src/files.c, src/files.h (table_obstack): Bye bye.
5245 (parser_file_name): New.
5246 * src/files.c (compute_output_file_names): Compute it.
5247 * src/output.c (actions_output, output_parser)
5248 (output_master_parser): To a file instead of an obstack.
5249
3f96f4dc
AD
52502001-12-15 Akim Demaille <akim@epita.fr>
5251
5252 Attach actions to rules, instead of pre-outputting them to
5253 actions_obstack.
5254
5255 * src/gram.h (rule_t): action and action_line are new members.
5256 * src/reader.c (symbol_list): Likewise.
5257 (copy_action): Save the actions within the rule.
5258 (packgram): Save them in rule_table.
5259 * src/output.c (actions_output): New.
5260 (output_parser): Use it on `%%actions'.
5261 (output_rule_data): Don't free rule_table.
5262 (output): Do it.
5263 (prepare): Don't save the `action' muscle.
5264 * src/bison.simple: s/%%action/%%actions/.
5265
51576fb3
AD
52662001-12-15 Akim Demaille <akim@epita.fr>
5267
5268 * src/reader.c (copy_action): When --yacc, don't append a `;'
5269 to the user action: let it fail if lacking.
dee049eb 5270 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 5271
2648a72d
AD
52722001-12-14 Akim Demaille <akim@epita.fr>
5273
5274 * src/lex.c (literalchar): Simply return the char you decoded, non
5275 longer mess around with obstacks and int pointers.
5276 Adjust all callers.
5277
92790e5b
AD
52782001-12-14 Akim Demaille <akim@epita.fr>
5279
5280 * src/lex.c (literalchar): Don't escape the special characters,
5281 just decode them, and keep them as char (before, eol was output as
5282 the 2 char string `\n' etc.).
5283 * src/output.c (output_rule_data): Use quotearg to output the
5284 token strings.
5285
927c1557
PE
52862001-12-13 Paul Eggert <eggert@twinsun.com>
5287
5288 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
5289 Do not infringe on the global user namespace when using C++.
5290 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
5291 All uses of `fprintf' and `stderr' changed.
5292
5293 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
5294
ed8e1f68
AD
52952001-12-13 Akim Demaille <akim@epita.fr>
5296
5297 The computation of nullable is broken: it doesn't handle empty
5298 RHS's properly.
5299
5300 * tests/torture.at (GNU AWK Grammar): New.
5301 * tests/sets.at (Nullable): New.
5302 * src/nullable.c (set_nullable): Instead of blindly looping over
5303 `ritems', loop over the rules, and then over their rhs's.
5304
5305 Work around Autotest bugs.
5306
5307 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
5308 frame, because Autotest understand lines starting with a `+' as
5309 traces from the shell. Then, they are not processed properly.
5310 Admittedly an Autotest bug, but we don't have time to wait for
5311 Autotest to catch up.
5312 * tests/regression.at (Broken Closure): Adjust to the new table
5313 frames.
5314 Move to...
5315 * tests/sets.at: here.
5316
cb581495
AD
53172001-12-13 Akim Demaille <akim@epita.fr>
5318
5319 * src/closure.c (closure): Use nrules instead of playing tricks
5320 with BITS_PER_WORD.
5321
2e729273
AD
53222001-12-13 Akim Demaille <akim@epita.fr>
5323
5324 * src/print.c (print_actions): Output the handling of `$' as the
5325 traces do: shifting the token EOF. Before EOF was treated as a
5326 nonterminal.
5327 * tests/regression.at: Adjust some tests.
5328 * src/print_graph.c (print_core): Complete the set of items via
5329 closure. The next-to-final and final states are still unsatisfying,
5330 but that's to be addressed elsewhere.
5331 No longer output the rule numbers, but do output the state number.
5332 A single loop for the shifts + gotos is enough, but picked a
5333 distinct color for each.
5334 (print_graph): Initialize and finalize closure.
5335
107f7dfb
AD
53362001-12-13 Akim Demaille <akim@epita.fr>
5337
5338 * src/reader.c (readgram): Remove dead code, an strip useless
5339 braces.
5340 (get_type): Remove, unused.
5341
9b53a24f
AD
53422001-12-12 Akim Demaille <akim@epita.fr>
5343
5344 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
5345 on that of lib/error.c.
5346
dbfb6dcd
AD
53472001-12-12 Akim Demaille <akim@epita.fr>
5348
5349 Some hosts don't like `/' in includes.
5350
5351 * src/system.h: Include libgettext.h without qualifying the path.
5352 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
5353 $(top_srcdir).
5354
c25fb648
MA
53552001-12-11 Marc Autret <autret_m@epita.fr>
5356
5357 * src/output.c (output_parser): Remove useless muscle.
5358
710ddc4f
MA
53592001-12-11 Marc Autret <autret_m@epita.fr>
5360
5361 * src/bison.simple: Remove #line just before %%epilogue. It
5362 is now handled in ...
5363 * src/reader.c (read_additionnal_code): Add the output of a
5364 #line for the epilogue.
5365
e83d80b8
MA
53662001-12-10 Marc Autret <autret_m@epita.fr>
5367
927c1557 5368 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
5369 replace precedent remove.
5370 * src/bison.simple: Remove #line before %%prologue because
5371 %%input-line is wrong at this time.
5372
971d5158
MA
53732001-12-10 Marc Autret <autret_m@epita.fr>
5374
5375 * src/reader.c (symbols_output): Clean up.
927c1557 5376 * src/output.c (output_gram, output): Clean up.
971d5158 5377
5edafffd
AD
53782001-12-10 Akim Demaille <akim@epita.fr>
5379
5380 * src/lalr.c (initialize_lookaheads): New. Extracted from...
5381 * src/LR0.c (set_state_table): here.
5382 * src/lalr.c (lalr): Call it.
5383
0279f8e9
AD
53842001-12-10 Akim Demaille <akim@epita.fr>
5385
5386 * src/state.h (shifts): Remove the `number' member: shifts are
5387 attached to state, hence no longer need to be labelled with a
5388 state number.
5389
190c4f5f
AD
53902001-12-10 Akim Demaille <akim@epita.fr>
5391
5392 Now that states have a complete set of members, the linked list of
5393 shifts is useless: just fill directly the state's shifts member.
5394
5395 * src/state.h (shifts): Remove the `next' member.
5396 * src/LR0.c (first_state, last_state): Remove.
5397 Adjust the callers.
5398 (augment_automaton): Don't look for the shifts that must be added
5399 a shift on EOF: it is those of the state we looked for! But now,
5400 since shifts are attached, it is no longer needed to looking
5401 merely by its id: its number.
5402
2a73b93d
AD
54032001-12-10 Akim Demaille <akim@epita.fr>
5404
5405 * src/LR0.c (augment_automaton): Better variable locality.
5406 Remove an impossible branch: if there is a state corresponding to
5407 the start symbol being shifted, then there is shift for the start
5408 symbol from the initial state.
5409
74392f6a
AD
54102001-12-10 Akim Demaille <akim@epita.fr>
5411
5412 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
5413 only when appropriate: when insert_start_shifting_state' is not
5414 invoked.
5415 * tests/regression.at (Rule Line Numbers): Adjust.
5416
37c82725
AD
54172001-12-10 Akim Demaille <akim@epita.fr>
5418
5419 * src/LR0.c (augment_automaton): Now that all states have shifts,
5420 merge the two cases addition shifts to the initial state.
5421
6a164e0c
AD
54222001-12-10 Akim Demaille <akim@epita.fr>
5423
5424 * src/lalr.c (set_state_table): Move to...
5425 * src/LR0.c: here.
5426 * src/lalr.c (lalr): Don't call it...
5427 * src/LR0.c (generate_states): do it.
5428 * src/LR0.h (first_state): Remove, only the table is used.
5429
7215de24
AD
54302001-12-10 Akim Demaille <akim@epita.fr>
5431
5432 * src/LR0.h (first_shift, first_reduction): Remove.
5433 * src/lalr.c: Don't use first_shift: find shifts through the
5434 states.
5435
80e25d4d
AD
54362001-12-10 Akim Demaille <akim@epita.fr>
5437
5438 * src/LR0.c: Attach shifts to states as soon as they are
5439 computed.
5440 * src/lalr.c (set_state_table): Instead of assigning shifts to
5441 state, just assert that the mapping was properly done.
5442
0ab3728b
AD
54432001-12-10 Akim Demaille <akim@epita.fr>
5444
5445 * src/LR0.c (insert_start_shift): Rename as...
5446 (insert_start_shifting_state): this.
5447 (insert_eof_shifting_state, insert_accepting_state): New.
5448 (augment_automaton): Adjust.
5449 Better locality of the variables.
5450 When looking if the start_symbol is shifted from the initial
5451 state, using `while (... symbol != start_symbol ...)' sounds
5452 better than `while (... symbol < start_symbol ...)': If fail
5453 to see how the order between symbols could be relevant!
5454
78af9bbc
AD
54552001-12-10 Akim Demaille <akim@epita.fr>
5456
5457 * src/getargs.h: Don't declare `spec_name_prefix' and
5458 `spec_file_prefix', declared by src/files.h.
5459 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
5460 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
5461 * src/output.c (prepare): Adjust.
5462 * src/reader.c (symbols_output): Likewise.
5463 * src/vmsgetargs.c: Vaguely adjust, but who cares?
5464
bdef2a41
AD
54652001-12-10 Akim Demaille <akim@epita.fr>
5466
5467 * src/muscle_tab.c (muscle_init): NULL is a better default than
5468 `"0"'.
5469
3735969c
AD
54702001-12-10 Akim Demaille <akim@epita.fr>
5471
5472 * src/reader.c (reader): Calling symbols_output once is enough.
5473
49701457
AD
54742001-12-10 Akim Demaille <akim@epita.fr>
5475
5476 Now that states have a complete set of members, the linked list of
5477 reductions is useless: just fill directly the state's reductions
5478 member.
5479
5480 * src/state.h (struct reductions): Remove member `number' and
5481 `next'.
5482 * src/LR0.c (first_reduction, last_reduction): Remove.
5483 (save_reductions): Don't link the new reductions, store them in
5484 this_state.
5485 * src/lalr.c (set_state_table): No need to attach reductions to
5486 states, it's already done.
5487 * src/output.c (output_actions): No longer free the shifts, then
5488 the reductions, then the states: free all the states and their
5489 members.
5490
0edad749
AD
54912001-12-10 Akim Demaille <akim@epita.fr>
5492
5493 * src/options.c (OPTN, DRTV, BOTH): New.
5494 (option_table): Use them.
5495
0edad749
AD
5496 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
5497 the job of system.h.
5498 * src/options.c: Don't include stdio.h and xalloc.h for the same
5499 reasons.
5500
5449dd0f
AD
55012001-12-10 Akim Demaille <akim@epita.fr>
5502
5503 * src/output.c (output, prepare): Make sure the values of the
5504 muscles `action' and `prologue' are 0-terminated.
5505
a870c567
AD
55062001-12-10 Akim Demaille <akim@epita.fr>
5507
5508 Clean up GCC warnings.
5509
5510 * src/reader.c (copy_action): `buf' is not used.
5511 (parse_skel_decl): Be static.
5512 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
5513 * src/options.h (create_long_option_table): Have a real prototype.
5514 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
5515 (hash_delete_at): Return const void *.
5516 Adjust casts to preserve the const.
5517
80df8768
AD
55182001-12-10 Akim Demaille <akim@epita.fr>
5519
5520 * configure.in: Require 2.52g.
5521 M4 is not needed, but AUTOM4TE is.
5522 * m4/m4.m4: Remove.
5523 * tests/Makefile.am: Adjust.
5524
f693ad14
AD
55252001-12-10 Akim Demaille <akim@epita.fr>
5526
5527 One structure for states is enough, even though theoretically
5528 there are LR(0) states and LALR(1) states.
5529
5530 * src/lalr.h (state_t): Remove.
5531 (state_table): Be state_t **, not state_t *.
5532 * src/state.h (core, CORE_ALLOC): Rename as...
5533 (state_t, STATE_ALLOC): this.
5534 Add the LALR(1) members: shifts, reductions, errs.
5535 * src/LR0.c (state_table): Rename as...
5536 (state_hash): this, to avoid name clashes with the global
5537 `state_table'.
5538 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
5539 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
5540
74ffbcb6
AD
55412001-12-10 Akim Demaille <akim@epita.fr>
5542
5543 Bison dumps core on bash.y.
5544 Reported by Pascal Bart.
5545
5546 * src/warshall.c (bitmatrix_print): New.
5547 (TC): Use it.
5548 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
5549 j must be the outer loop.
5550 * tests/regression.at (Broken Closure): New.
5551
07708e19
AD
55522001-12-05 Akim Demaille <akim@epita.fr>
5553
5554 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
5555 its argument.
5556