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