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